实验4-1-7 特殊a串数列求和 (20 分)

给定两个均不超过9的正整数an,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

输入格式:

输入在一行中给出不超过9的正整数an

输出格式:

在一行中按照“s = 对应的和”的格式输出。

输入样例:

2 3

输出样例:

s = 246

代码:

# include <stdio.h>
# include <stdlib.h>

int main() {
    
    
	int a,n,s = 0,i,temp = 0;
	scanf("%d %d",&a,&n);
	for (i=1;i<=n;i++) {
    
    
		// aa = a * 10 + a,aaa = aa * 10 + a
		temp *= 10;
		temp += a;
		s += temp;
	}
	printf("s = %d",s);
	return 0;
}

提交截图:

在这里插入图片描述

解题思路:

这道题有点意思了,可以跟着我的思路来串一遍:

  • 2 3举例,s = 2 + 22 + 222,可以发现后一个数是前一个数的10倍 + 那个数(为什么不是11倍?你看看222 = 22 * 10 +2,所以是不是不能写成222 = 22 * 11
  • 那么我们可以定义一个变量temp用于存储每次变化的值,初始化为0是因为这样我们第一层循环的时候temp += a前不至于是别的值!

猜你喜欢

转载自blog.csdn.net/weixin_43862765/article/details/114477851
今日推荐