谭浩强C++课后练习题3——计算a+aa+....+aa..a

谭浩强C++课后练习题3——计算a+aa+…+aa…a

题目描述:求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。
算法思路:
用一个变量result存储最后的结果,让其初始值为0;number表示每一个项的值,m为辅助值每次循环乘10。每循环一次,让number更新,result加上number的值,m乘10;m的功能也可用pow函数代替(需要引入cmath)功能为计算某个值的乘阶。
循环n次后返回result。

#include<iostream>
using namespace std;
int Sn(int a, int n) {
	int result = 0;
	int number = 0;
	int m = 1;
	for (int i = 1;i <= n;i++) {
		number += a * m;
		result += number;
		m *= 10;
	}
	return result;
}
int main() {
	int a, n;
	cout << "输入a,n:";
	cin >> a >> n;
	cout << "result=" << Sn(a, n) << endl;
	return 0;
}

运行测试结果:
在这里插入图片描述

发布了35 篇原创文章 · 获赞 35 · 访问量 636

猜你喜欢

转载自blog.csdn.net/weixin_45295612/article/details/105178221
今日推荐