方法一(基础版):
#include<stdio.h> int main(){ int m,n; printf("请输入一个位数:"); scanf("%d",&n); printf("请输入需要计算的一个0~9之间的数:"); scanf("%d",&m); while(m>9||m<0){ printf("输入的数字必须在0~9之间!\n请重新输入:"); scanf("%d",&m); } int sum=0; int tmp=0; int mask=n; while(mask>1){ //得到最高位的数字 如果n是3就得到 t=100*m的值 m*=10; mask--; } while(m>0){ //如果此时m=100,执行while循环将会得到 111 tmp+=m; m=m/10; } while(tmp>0){ //如果此时m=111执行while循环后得到111+11+1的值 sum+=tmp; tmp/=10; } printf("%d",sum); return 0; }
方法二(进阶版):
#include<stdio.h> int main(){ int m,n; int Sn=0; int tmp=0; //中间变量; int i=0;//循环变量 printf("请输入一个位数:"); scanf("%d",&n); printf("请输入需要计算的一个0~9之间的数:"); scanf("%d",&m); while(m>9||m<0){ printf("输入的数字必须在0~9之间!\n请重新输入:"); scanf("%d",&m); } for(i=0;i<n;i++){ tmp=tmp*10+m; Sn+=tmp; } printf("%d",Sn); return 0; }
C语言初级:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值
本文介绍了两种C语言版本的实现方法,一种是基础版,通过逐位相加处理;另一种是进阶版,使用for循环一次性计算多位数的和。
摘要由CSDN通过智能技术生成