望各位告诉解题思路,是不是把每位数提出来相加,用取余
测试图:
#include<stdio.h>
int main(){
int n,m,i,sum=0,result=0;
printf("请输入a的值:");
scanf("%d",&m);
while(m>9||m<1){
printf("a的值必须在1到9之间!\n\n");
printf("请输入a的值:");
scanf("%d",&m);
}
printf("请输入n的值:");
scanf("%d",&n);
while(n>9||n<1){
printf("n的值必须在1到9之间!\n\n");
printf("请输入n的值:");
scanf("%d",&n);
}
for(i=n;i>=1;i--){
result=result*10+m;
sum+=result;
}
printf("aa...aa-aaaaa-aaaa-...-aa-a=%d\n",result*2-sum); //因为都是负数相加,那么最后一个数是减(最大的那个数),故必须加上最后一个数的2倍
return 0;
}
希望对题主有所帮助,可以的话,帮忙点个采纳!
这个感觉可以直接算吧,从a开始,依次乘十加a,把后面要减的全部加起来,最后由n-1个a得到n个a,再相减就行了,完成后也可以试试n上限到100该怎么计算。
代码发一下
我的解题思路就是把a转换成相同的字符,然后以n为数量扩展成字符串,再在for循环字符串每次用memcpy拷贝一个新的短字符串,然后转成整形运算。