要求找出具有下列性质的数的个数(包含输入的自然数n):
先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入一个整数n输出一个整数,即满足条件的数的个数样例输入
6
样例输出
6
提示如输入6,则有
16
26
126
36
136
#include <cstdio> #include <iostream> #include <string> #include <cstring> using namespace std; int n,cnt=1; void init(int &n) { while (n/10) { n /= 10; } } void f(int x) { for(int i=1;i<=x/2;i++){ cnt++; f(i); } } int main() { int n = 0; cin >> n; init(n); f(n); printf("%d\n",cnt); }