时间限制: 1000 ms 内存限制: 65536 KB
提交数: 31530 通过数: 13423
【题目描述】
我们要求找出具有下列性质数的个数(包括输入的自然数nn)。先输入一个自然数n(n≤1000)n(n≤1000),然后对此自然数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个自然数,但该自然数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加自然数为止。
【输入】
自然数n(n≤1000)n(n≤1000)。
【输出】
满足条件的数。
【输入样例】
6
【输出样例】
6
【提示】
【样例解释】
满足条件的数为如下所示:
6
16
26
126
36
136
【答题思路】
利用递归算法,配上函数,解决问题
【程序如下】
#include <bits/stdc++.h>
using namespace std;//将起始柱上面的n岑汉诺塔移动到目标柱的过程
void qwe(int n, char q, char m, char g) {
if (n == 0)
return;
qwe(n - 1, q, g, m);
printf ("%c->%d->%c\n", q, n, m);
qwe(n - 1, g, m, q);
}int main() {
int n;
char a, b, c;
cin >> n >> a >> b >> c;
qwe(n, a, b, c);return 0;
}