洛谷刷题-P1028 数的计算

    xiaoxiao2022-07-05  200

    2018年信息学奥赛NOIP资料下载 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n):

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

    1.不作任何处理;

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

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

    输入输出格式 输入格式: 一个自然数n(n<=1000)

    输出格式: 一个整数,表示具有该性质数的个数。

    输入输出样例 输入样例#1: 6 输出样例#1: 6 说明 满足条件的数为

    6,16,26,126,36,136

    代码:

    一题简单的递归…

    #include<iostream> #include<cstdio> using namespace std; int n,k=0;//k是记录方案总数; void js(int a);//递归函数; int main() { scanf("%d",&n); js(n); printf("%d",k); return 0; } void js(int a) { k++; if(a==1) return ;//a==1时返回主函数(结束); for(int i=1;i<=a/2;i++)//下一个数不能超过前一个数的一半; js(i);//递归 }
    最新回复(0)