日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CSDN编程挑战——《高斯公式》

發(fā)布時間:2023/12/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSDN编程挑战——《高斯公式》 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

高斯公式

題目詳情:

高斯在上小學(xué)時發(fā)明了等差數(shù)列求和公式:1+2+..+100=5050。現(xiàn)在問題在于給你一個正整數(shù)n,問你他可以表示為多少種連續(xù)正整數(shù)之和?(自身也算)。

輸入格式:

多組數(shù)據(jù),每組數(shù)據(jù)一行,一個正整數(shù)n。 0<n<2000000000

輸出格式:

每組數(shù)據(jù)一行,包含一個正整數(shù),表示結(jié)果。



答題說明:

輸入樣例

5

120

輸出樣例:

2

4

解釋:

5=2+3=5

120=1+2+...+15=22+23+24+25+26=39+40+41=120



初稿代碼:

/*3: 3、1+2=34: 4、5: 5、2+3=56: 6、1+2+3=6 7: 7、3+4=7 8: 8、9: 9、4+5=9、2+3+4=910: 10、1+2+3+4=10 分析: 輸入n設(shè) s,x (x個從s開始連續(xù)的數(shù)相加等于n,例如 :10=1+2+3+4中 n:10 s:1 x=4)于是有求和公式: (s+(s+x-1)) ----------- * x = n2 根據(jù)求和公式暴力即可求解 */ #include "stdio.h" #include "math.h" int main() {int count;long long x,n;while(scanf("%I64d",&n)!=EOF){count=1; for(x=2;x<n;x++){double s=(n+(x-x*x)/2.0)/x;if(s>=1){if(floor(s+0.5)==s){ //判斷 s 為整數(shù) printf("%d > x:%I64d s:%d\n",count+1,x,(int)s);count++;}else{printf("%d,%lf不整除!\n",x,s);} }else{printf("最多不超過%d個數(shù)相加!\n",x); break;}}printf("result:%d\n",count);break;} return 0; }


AC后代碼:

#include "stdio.h" #include "math.h" int main() {int count;long long x,n;while(scanf("%I64d",&n)!=EOF){double s=n;for(count=0,x=2;s>=1;x++){if(floor(s+0.5)==s) {count++;// printf("%d > x:%d s:%d\n",count,x-1,(int)s);}s=(double)n/x+(1-x)/2.0; }printf("%d\n",count);// break;} return 0; }
注意:程序中數(shù)據(jù)類型為 int 對比較大的數(shù)據(jù)計算過程中可能會溢出

CSDN挑戰(zhàn)編程交流群:372863405?????????????????



總結(jié)

以上是生活随笔為你收集整理的CSDN编程挑战——《高斯公式》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。