解题思路注意事项:
这个题的思路是:
首先确定n,是有几项相加,然后利用for()循环n次进行相加;
其次就是每次计算时要加的项,也就是几个2,我的方法是:
1、先定义a=0;
2、由于后一项都比前一项多一个2,所以a=a*10+2,因为a的值为0,所以当n=1的时候,a=2;
3、求和将每个a都加上就可以了。
需要注意的是for()循环里面的表达式,循环的次数一定注意不要出错就没问题了。
参考代码:
#include<stdio.h> int main() { int n,Sn = 0,i,a = 0; scanf("%d",&n); for(i=0; i<n; i++){ a = a * 10 + 2; Sn = Sn + a; } printf("%d\n",Sn); return 0; }
0.0分
155 人评分
/*求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。*/ #include <stdio.h> int main() { int Sn = 0, a = 0, n; scanf("%d", &n); for (int i = 1; i <= n; i++) { a = a * 10 + 2; Sn = Sn + a; } printf("%d", Sn); }
#include<stdio.h> #include<math.h> int main() { int n,i; int sum=0; int x; scanf("%d",&n); for(i=1;i<=n;i++) { x=(pow(10,i)-1)/9*2; sum+=x; printf("sum=%d\n",sum); } return 0; } 为什么答案错误?大佬帮忙看看
白水开了 2021-12-26 14:39:36 |
x没有初始化
求求大神舅舅孩子,不知道这两个哪里错了 int main() { int i,m,n,t; scanf ("%d",&n); t=0; BEGIN:;//goto返回点 for (i=0,m=0; n>=1; n--) { i=2*pow(10,n-1); m+=i; } t+=m; if(n>1) { n--; goto BEGIN; } else printf("%d",t); return 0; } int main() { int i,m,n,t; scanf ("%d",&n); t=0; while(n>=1) { for (i=0,m=0; n>=1; n--) { i=2*pow(10,n-1); m+=i; } t+=m; n--; } printf("%d",t); return 0; }
1021王俊峰 2022-01-26 10:55:28 |
m没有初始化
#include <stdio.h> int main(void) { int n,i,a[n],j=0; a[0]=0; int sum = 0,flag = 1,temp = 1; scanf("%d",&n); while(flag) { for(i = 0;i < temp;i++) { a[j] += 2 * 10^i; } j++; if(j == n) { flag = 0; break; } temp ++; } for(i = 0;i < n;i++) { printf("%d",a[i]); } printf("%d",sum); return 0; } 求解,这为什么不对
chenxw 2021-10-31 23:34:46 |
10^i不是指数啊,c语言的指数不是这样写的
int main() { int sn=0,i,n,a=0; scanf("%d",&n); for(i=1;i<=n;i++) { a=pow(10,i); sn=sn+a/5; } printf("%d",sn); }//求解这个.......
AkMoney 2021-02-10 13:22:52 |
你这个也不对鸭,sn=sn+a/5;//这行不应该这么写的哈
#include <stdio.h> int main () { int n,a=2; long term=0,Sn=0; printf("请输入n的值:"); scanf("%d",&n); while(n!=0) { term=term*10+a; Sn=Sn+term; n--; } printf("Sn=%d",Sn); return 0; }
#include<stdio.h> #include<math.h> int main() { int n,Sn,i,a,b=0; scanf("%d",&n); for(i=0;i<n;i++) { a=2*pow(10,i); b=a+b; Sn=Sn+b; } printf("%d",Sn); return 0; }
#include<stdio.h> #include<math.h> int main() { int Sn = 0, a = 0, n, i,b=0; scanf_s("%d", &n); for (i = 0; i < n; i++) { a = pow(10, i) * 2; b = b + a; Sn += b; } printf("%d", Sn); return 0; }
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:875 |
震宇大神的杀毒软件 (C++代码)浏览:1173 |
C语言训练-排序问题<2> (C++代码)浏览:934 |
回文数(一) (C语言代码)浏览:809 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:552 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:569 |
DNA (C语言代码)浏览:798 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:476 |
筛排处理 (C语言代码)浏览:830 |
kong2021 2021-12-21 19:57:14 |
写错了
kong2021 2021-12-21 19:57:36 |
a等于0
林毅 2022-01-08 12:23:00 |
@2814634520 再仔细看一下哦