林惜城


私信TA

用户名:reminder

访问量:31323

签 名:

等  级
排  名 91
经  验 9074
参赛次数 0
文章发表 95
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

哈姆


解题思路:

分成3个子函数,一个求1~a之和,一个求1~b的平方和,一个求1~c的倒数和,用while()语句或者递归都可以。


注意事项:

保留两位小数,在子函数中就要体现出来,否则传到主函数仍然是整型。

参考代码:

#include <iostream>
#include <iomanip>

using namespace std;

int numCnt(int num); //递增求和
int sqrCnt(int num); //平方和
float rcpCnt(int num); //reciprocal,倒数和
int main() {
	int a = 0;
	int b = 0;
	int c = 0;
	cin >> a >> b >> c;
	cout << fixed << setprecision(2) << numCnt(a) + sqrCnt(b) + rcpCnt(c) << endl; //保留2位小数
	return 0;
}
int numCnt(int num) {
	if(num == 1) {
		return 1;
	} else {
		return num + numCnt(num - 1); //递归
	}
}
int sqrCnt(int num) {
	if(num == 1) {
		return 1;
	} else {
		return num * num + sqrCnt(num - 1); //递归
	}
}
float rcpCnt(int num) {
	if(num == 1) {
		return 1;
	} else {
		return (float)1/num + rcpCnt(num - 1); //这里的(float)很重要,不然1/num直接变int了
	}
}


 

0.0分

1 人评分

  评论区

  • «
  • »