zoukankan      html  css  js  c++  java
  • 数的计算

    问题描述:

    要求找出具有下列性质数的个数(包含输入的自然数n):
    先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
    1. 不作任何处理;
    2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
    3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
    用全局数组保存递归中产生的结果解决超时问题。
    #include<iostream>
    using namespace std;
    static int gold[1000]={0};
    
    int count(int m)
    {   int count2=0;
         if(m==1) return 1;
         if(m==0) return 1;
    
        int i;
        for( i=0;i<=m/2;i++)
        {
            if
                (gold[i]!=0) count2=count2+gold[i];
            else
            count2=count2+count(i);
        }
    
        gold[m]=count2;
        return count2;
    }
    
    
    int main()
    
    {      
        int N;
        int i;
         
        cin>>N;
        cout<<count(N);  
    
        return 0;
    }


    另一个通过的代码:

    #include <iostream>
    using namespace std;
    
    int main(){
        int n,a[2000];
        fill(a,a+2000,1);
        cin>>n;
        for(int i=2;i<=n;i=i+2){
                a[i]=a[i-1]+a[i/2];//每次增加一个分支 
                a[i+1]=a[i];//连着的两个相同 
        }
        cout<<a[n]<<endl;                            
        system("pause");
        return 0;
    }

    fill函数的作用是将一个区间的元素都替换成val值,

    将一个区间的元素都赋予val值。函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【181】IDL 代码从 Windows 转移到 Linux
    异步加载图片到GridView上,防止OOM
    10881
    AngularJS的开发工具---yeoman 简易安装
    AIX操作oracle
    hdu2817 A sequence of numbers
    FZU 2104 (13.11.28)
    HDU 1231 (13.12.2)
    Java 23种设计模式详尽分析与实例解析之一--创建型模式
    JSP视频
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965786.html
Copyright © 2011-2022 走看看