题目
输出表达式“s=a+aa+aaa+aaaa=“和其结果求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。几个数相加有键盘控制。
例如2+22+222+2222+22222(此时共有5个数相加),
输出内容为:s=2+22+222+2222+22222=24690
代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a, n;
int buf[1000] = {};
int sum = 0;
printf("请输入数字和位数:\n"); // 提示用户输入
scanf("%d %d", &a, &n); // 接收用户输入的数字和位数
printf("s=%d", a); // 输出初始数字
for (int i = 0; i < n; i++) // 开始循环,根据输入的位数进行操作
{
if (i == 0) // 当是第一次循环
{
buf[i] = a; // 将输入的数字存储到数组的第一个位置
sum = a; // 将输入的数字累加到总和中
}
else if (i > 0) // 当不是第一次循环
{
buf[i] = buf[i - 1] * 10 + buf[0]; // 计算当前位置的数值
sum += buf[i]; // 将当前位置的数值累加到总和中
printf("+%d", buf[i]); // 输出当前位置的数值
}
}
printf("=%d\n", sum);
return 0;
}