P1028 数的计算 洛谷

https://www.luogu.org/problem/show?pid=1028

题目描述

我们要求找出具有下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:

1.不作任何处理;

2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.

输入输出格式

输入格式:

 

一个自然数n(n<=1000)

 

输出格式:

 

一个整数,表示具有该性质数的个数。

 

输入输出样例

输入样例#1:
6
输出样例#1:
6

说明

满足条件的数为

6,16,26,126,36,136

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 int n,ans;
 8 
 9 void DFS(int now)
10 {
11     int midd=now/2;
12     if(midd==0)
13         return ;
14     for(int i=1;i<=midd;i++)
15     {
16         ans++;
17         DFS(i);
18     }
19     return ;
20 }
21 
22 int main()
23 {
24     cin>>n;
25     DFS(n);
26     cout<<ans+1;
27     return 0;
28 }
深搜

 

posted @ 2017-03-25 10:53  Aptal丶  阅读(201)  评论(0编辑  收藏  举报