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为将要替换的值。


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

  • 相关阅读:
    详细分析Orchard的Content、Drivers, Shapes and Placement 类型
    什么是现代的应用程序?
    MySQL锁详解!(转载)
    EF DataFirst修改数据类型
    EF+LINQ事物处理
    .net防止SQL注入的一种方式
    .net解决Xss攻击
    IDEA创建Struts2报错——web.xml
    WebServer搭建过程
    设计模式——观察者模式
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965788.html
Copyright © 2011-2022 走看看