小米oj 有多少个公差为2的等差数列
生活随笔
收集整理的這篇文章主要介紹了
小米oj 有多少个公差为2的等差数列
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?有多少個(gè)公差為 2 的等差數(shù)列
序號(hào):#31難度:有挑戰(zhàn)時(shí)間限制:1000ms內(nèi)存限制:10M
描述
給出一個(gè)正整數(shù)N(2<= N <=10000000),統(tǒng)計(jì)有多少公差為2的正整數(shù)等差數(shù)列,使得數(shù)列的和為N。
舉例: 正整數(shù) 15,可以寫(xiě)為 15 和 3,5,7 兩個(gè)等差數(shù)列。 其中 15 自身就是一個(gè)等差數(shù)列,3+5+7=15 也是一個(gè)符合條件的等差數(shù)列,所以輸出為 2,表示有兩個(gè)符合條件的等差數(shù)列。
- 請(qǐng)注意時(shí)間復(fù)雜度限制
輸入
一個(gè)正整數(shù),表示等差數(shù)列中所有數(shù)的和,范圍為 [2, 10000000]
輸出
一個(gè)正整數(shù),表示可以找到多少符合條件的正整數(shù)等差數(shù)列。 (由于一個(gè)數(shù)字也可以算做等差數(shù)列,所以輸出至少為1)
輸入樣例
15 30 50?復(fù)制樣例
輸出樣例
2 4 3 #include<stdio.h> using namespace std; typedef long long ll; int main() {//freopen("in.txt","r",stdin);ll n;ll m;while(~scanf("%lld",&n)){ll ans=1;for(int L=2;L<=n/2;L++){if(n%L)continue;if(n/L-L+1>=1&&(n/L-L+1)+(L-1)*2<=n)ans++;}printf("%lld\n",ans);} return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/linruier/p/9948622.html
總結(jié)
以上是生活随笔為你收集整理的小米oj 有多少个公差为2的等差数列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQLServer之创建显式事务
- 下一篇: 笔记4---内部类