C语言编程:
#include
int main(int argc, char *argv[])
{
int a;
int n;
int num=1;//计算每次n个a的值
int sum=0;//计算总和
int i;
scanf("%d%d",&a,&n);
for(i=0;i { if(i==0)//第一次 { num=a; sum+=num; } else//以后的都满足关系:这个数等于前一个数*10+a { num=num*10+a; sum+=num; } } printf("%d",sum);//输出总和 return 0; 详细操作: 打开Dev-c++软件,点击“新建源代码”。 具体程序如下: #include int main() { int i,j,a,n,sum=0,term=0; printf("please input a number:"); scanf("%d",&a); printf("please input n number:"); scanf("%d",&n); for(i=1;i<=n;i++) { term=term*10+a; sum=sum+term; } printf("a+aa+aaa+...+a...a=%d",sum); return 0; } 编写完程序之后,点击运行即可得出结果。最后的结果是根据自己输入的n值和a值为基础来进行运行的,每次输入的值不同,结果也会不同。 其中:for表示循环结构,i 表示循环条件,在编写程序时,注意给赋予增值变量的条件。 其中:term=term*10+a 中的term表示a的位数,跟随每次循环结构的变换,term不断被赋予新值。sum=sum+term 表示累加的值,每次循环之后的sum都会被赋予新值,所以,在编写程序时,要注意 i 的最大循环次数,否则,此程序会无限选循环下去,最终没有结果。
#include
int main(int argc, char *argv[])
{
int a;
int n;
int num=1;//计算每次n个a的值
int sum=0;//计算总和
int i;
scanf("%d%d",&a,&n);
for(i=0;i { if(i==0)//第一次 { num=a; sum+=num; } else//以后的都满足关系:这个数等于前一个数*10+a { num=num*10+a; sum+=num; } } printf("%d",sum);//输出总和 return 0;
#include
void main()
{
int a,n;
int i,j;
long s=0,x=1,y;
printf("请输入a和n的值:\n");
scanf("%d%d",&a,&n);
for(i=0;i { x*=10; y=a*(x-1)/9;/*aaaa的表示方法*/ s+=y; } printf("s=%ld\n",s); }
首先,an=a*111…1=a/9*999…9=a/9*(10^n-1)。所以,sn=a/9*(10-1+10^2-1+…+10^n-1)=a/9*(1+10+10^2+…+10^n-n-1)=a/9*((10^(n+1)-1)/9-n-1)。
剩下用C编程好了。用循环是最笨的办法。
举个例子吧,2222就等于(10000-1)/9*2,在用个累加就行了,思路是这样,