• 数的计数——递推算法


    Problem Description

    我们要求找出具有下列性质数的个数(包含输入的自然数n)。先输入一个自然数n(n<=1000),然后对此自然数依照例如以下方法进行处理:
    不作不论什么处理;
    在它的左边加上一个自然数,但该自然数不能超过原数的一半;
    加上数后。继续按此规则进行处理,直到不能再加自然数为止。

    Input

    输入有多组数据。每组数据为自然数n。

    Output

    对于每组数据输出满足条件的数的个数。

    Sample Input

    6

    Sample Output

    6
    
    Hint
    满足条件的数为6,16,26,126,36,136。

    Author

    HYNU 


    代码:



    //递推公式:当i为奇数时,h(i)=h(i-1);当i为偶数时,h(i)=h(i-1)+h(i/2).
    #include<stdio.h>
    int h[1001];
    int fun(int n)
    {
       int i;
       h[1]=1;
       for(i=2;i<=n;i++)
         {
            if(i%2==1)h[i]=h[i-1];
            else h[i]=h[i-1]+h[i/2];
         }
       return h[n];
    }
    int main()
    {
       int n; 
       while(scanf("%d",&n)!=EOF)
       {
          printf("%d
    ",fun(n));
       }
       return 0;
    }
    


  • 相关阅读:
    网络安全之常见攻击
    引入element-ui
    引入sass
    浏览器解析流程
    JDK8 HashMap--removeNode()移除节点方法
    JDK8 HashMap--treeify()树形化方法
    JDK1.8 HashMap--treeifyBin()方法
    二叉查找树ADT
    队列ADT

  • 原文地址:https://www.cnblogs.com/llguanli/p/7069234.html
Copyright © 2020-2023  润新知