14 条题解
-
11
#include <iostream> #include <iomanip> using namespace std; int main() { int n,a; double q; q = 0; cin >> n; a = 1; while (a <= n) { q += 1.0 / a; a++; } cout << fixed << setprecision(3) << q; return 0; }
解析:
1.定义循环变量 a ,输入变量 n ,以及统计变量 q。(我发现我特别喜欢 q )
注意!!!统计变量一定要用双精度double
2.在循环次数不确定的情况下使用 while 循环, 条件为 a <= n ( a 是循环变量)
3.众所周知,分数可以改写为除法算式(如:X / Y)所以我们用 q 加上 1.0 / a。
注意!!!要写 1.0 而不是 1,这俩玩意儿不一样,因为算式结果会自动转化为更复杂的数值的数据类型。1 / 2 答案会是 0 ,(转化为整数了) 1.0 / 2 答案就会是 0.5 了。(如果我记得没错,如果有错欢迎各位指出)
4.循环变量 a 要自增 1 ,不然循环就死了。
5.用老朋友 fixed 控制小数位数并输出。
6.看到这里就点个赞吧!👍
提示:
简单到复杂的数据类型分别为(举例):
char / short (字符型 / 短整型) -> int / long long (整形) -> float (单精度实型) -> double (双精度实型)
-
4
还是先看题
Sn = 1 + 1/2 + 1/3 + … + 1/n
将1转化为1/1可得
Sn = 1/1 + 1/2 + 1/3 + … + 1/n
于是我们可以发现分母是可以用枚举枚举出来的,所以这里采用for循环枚举出每个分母,用1÷分母的到具体的值,再求和就行(因为求出来得知可能是很多位小数,所以这里用double)。注意输出时要保留3位小数,用cstdio的可以用"%.3f"处理小数位数。用iostream的需要再用到iomanip处理小数位数
#include <iostream> #include <iomanip> using namespace std; int main() { int n; double sum = 0; cin >> n; for(double i = 1;i<=n;i++) sum += (1.0 / i); cout << fixed << setprecision(3) << sum; return 0; }
-
2
先看代码:
#include <iostream> #include <iomanip> //不用万能头文件的小伙伴,这行不能忘记啊! using namespace std; int main() { int n; cin >> n; double i = 1, sum = 0; //这两个变量要是double,否则最终输出出来是整数; while (i <= n) //很好理解吧!n是几就得加几次吗! { sum += 1 / i; //这里把每个分数变成除法算式都加到里面去,开头的1 = 1 / 1; //为什么被除数是1?因为我们的i是double类型,除法算式中只要有一个为double,结果就是double; i++; // 循环步进不能忘!否则进入死循环; } cout << fixed << setprecision(3) << sum; //处理输出; return 0; }
以上就是代码,注释一定得看; 如果有错误亲们指出🎉️ ,不要吝啬你们的👍 最后我祝大家
端午安康
安康的就给我点赞!!👍
-
0
闲来无事,编个题解......请勿借(
抄)鉴(袭)!#include <iostream> #include <iomanip> #include <cstdio> #include <cmath> using namespace std; int main() { double n,m=0,o; cin >> n; while(m<n) { m++; o+=(1.0/m); } cout << fixed << setprecision(3) << o; return 0; }
出现以下报错不用管!
foo.cc: In function 'int main()': foo.cc:13:10: warning: 'o' may be used uninitialized in this function [-Wmaybe-uninitialized] o+=(1.0/m); ~^~~~~~~~~
-
-3
解析:
1.定义循环变量 i ,我循环时特别喜欢用循环变量 i 。输入变量 n ,以及统计变量 sum。(我发现我特别喜欢 sum 😄 )
注意!!!统计变量一定要用双精度double必须记住
2.在循环次数不确定的情况下使用 while 循环, 条件为 a <= n ( a 是循环变量)
3.众所周知,分数可以改写为除法算式(如:X / Y)所以我们用 q 加上 1.0 / a。
注意!!!要写 1.0 而不是 1,这俩东东不一样,因为算式结果会自动转化为更复杂的数值的数据类型。1 / 2 答案会是 0 ,(转化为整数了) 1.0 / 2 答案就会是 0.5 了。
4.循环变量 i 要自增 1 ,不然就死循环了。
5.用大朋友 fixed 控制小数位数并输出。
6.看到这里就点“亿”赞吧!👍
#include <iostream> #include <cstdio> //导入cstdio库 using namespace std; int main() { int i = 1,n; //定义i,n。 double sum = 0; cin >> n; while (i <= n) //while循环。 { sum += 1.0/i; i++; } printf ("%.3lf",sum); //打印出来 return 0; }
- 1
信息
- ID
- 224
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 2243
- 已通过
- 881
- 上传者