#include<stdio.h> int main() { int n,sum=0,sn=0; scanf("%d",&n); for(int i=0;i<n;i++){ sum+=2*pow(10,i); sn=sn+sum; } printf("%d",sn); return 0; }
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i,n,sn; scanf("%d",&n); sn=0; for(i=0;i<n;i++) sn+=2*(pow(10,i+1)-1)/9; printf("%d",sn); }
#include<stdio.h> int main() { int n,Sn,i,s1; Sn=0; scanf("%d",&n); while(n>0){ for(i=1,s1=1;i<=n;i++){ s1=s1*i; } n=n-1; Sn=s1+Sn; } printf("%d\n",Sn); } 求大佬帮我看看这个错哪里了
有人可以再解释一下吗?还是没懂
zxdf 2022-05-20 22:08:21 |
相当于把每个位的数先计算好再填到Sn上去,先填最高位的2,再填次高位的4,依此类推
kk 2023-02-02 09:34:48 |
他这个解法也挺有意思的,n=1,sum=2,sum个位数有1个2,n等于2,sum=2+22,sum个位数有2个2,十位有1个2,sum=2*2+2*1*10,n等于3,sum=2+22+222,个位3个2,十位2个2,百位1个2,sum=2*3+2*2*10+2*1*100
kk 2023-02-02 10:16:56 |
想法是上面的写法,你看不懂是因为你没看懂他是怎么实现这个过程的,首先,按照上面的思路,叠加起来后,百分位的2的个数永远比十分位2的个数少1个,十分位2的个数又永远比个位2的个数少1个,利用这个规律,从n=2来看,i=1时,sum=2,i=2时,证明十分位有1个2,个位有2个2,把i=1时,sum=2的结果乘以2,就得到了十分位的1个2,然后再计算个位2个2,在把结果相加;同理,当n=3时,在i=2的情况下,sum=24,i=3时,百分位应该是1个2,十分位2个2,所以把i=2情况下得到的sum=24*10,就得到240,就解决了百分位和十分位,然后再加上剩下的个位的3个2,就是结果,这样就好理解了
junzhe051129 2023-07-03 18:29:36 |
@dotcpp0639593 说的太清楚了,佩服佩服
有没有大佬帮忙看看为什么不行qwq #include<stdio.h> int main() { int S,a=2,n; scanf("%d",&n); while(n>0) { S += a; a = a*10 + 2; n--; } printf("%d",S); return 0; }
海兰 2022-03-03 14:46:19 |
S没有初始化
#include <stdio.h> #include <math.h> int main() { int n; scanf("%d",&n); int i; int y; int sum=0; for(i=n;i>=1;i--){ y = pow(10,n-i); sum += (2*i)*y; } printf("%d",sum); return 0; }
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:612 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:623 |
Pascal三角 (C语言代码)浏览:1252 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:566 |
1014题解浏览:524 |
出圈】指针malloc版浏览:377 |
杨辉三角 (C语言代码)浏览:505 |
1035 题解浏览:875 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:571 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |