11行代码AC——习题2-4 子序列的和(subsequence)——解题报告
生活随笔
收集整理的這篇文章主要介紹了
11行代码AC——习题2-4 子序列的和(subsequence)——解题报告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
勵志用盡量少的代碼做高效的表達。
題目描述:
輸入兩個正整數n<m<106,輸出1/(n2)+1/((n+1)2)+……+1/(m2),保留5位小數。輸入包含多組數據,結束標記為n=m=0。提示:本題有陷阱。
樣例輸入:
2 4
65536 655360
0 0
樣例輸出:
Case 1: 0.42361
Case 2: 0.00001
思路:
1、由于數量太大,如果按照傳統的除法相加一定會溢出。因此不難想到用“在線處理”算法解題,即每次循環都及時算出結果,避免過程數過大溢出。
2、方法想到了,如何實施呢? 1/n2=1/(n*n)=(1/n)*(1/n)=(1/n)/n = 1/n/n; 按此思路解題即可。
代碼:
#include<stdio.h> int main() {int n, m; while(scanf("%d%d",&n,&m) && n) {double sum = 0;while(n <= m) {sum += 1.0/n/n; ++n;}printf("%.5lf\n", sum); }return 0; }如果這篇博客對你產生了幫助,就請給博主點一個小小的贊吧!大家的點贊是我更新的最大動力!
總結
以上是生活随笔為你收集整理的11行代码AC——习题2-4 子序列的和(subsequence)——解题报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解题报告——习题2-5 分数化小数(de
- 下一篇: 编译原理习题(含答案)——1 绪论——M