谭浩强C++课后习题13——整数转化为字符串,求i平方和
题目一:用递归法将一个整数n转化为字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
算法思路:显然要一个字符一个字符地转换,在调用convert函数时先检查要转换的整数是否为个位数,如果是,就直接转换为字符输出,如果不是,则将它除以10,再调用convert,直到得到个位数为止。
#include<iostream>
using namespace std;
void convert(int num) {
if (num / 10 != 0) {
convert(num / 10);
}
cout << char(num % 10 + '0');
}
int main() {
int num;
cout << "输入一个数:";
cin >> num;
convert(num);
return 0;
}
运行结果:
题目二:用递归法求i的平方和(i从1到n),n的值由主函数输入。
#include<iostream>
using namespace std;
int fn(int n) {
if (n == 1)
return 1;
else
return n * n + fn(n - 1);
}
int main() {
int n;
cout << "输入n:";
cin >> n;
cout << "result=" << fn(n) << endl;
return 0;
}
运行结果: