您的位置:首页 > 其它

SDAU练习三1004

2016-05-05 23:05 260 查看
题目大意:

将所有的以 2 3 5 7 因子的数,排好序放在数组里。

思路:

num[ i ] = min { 2*i,3*j,5*k,7*m }

借鉴豆豆的思路,听他说要这么做,,,然而我真的没有写出来。,

AC代码:

[cpp]
view plain
copy







#include<iostream>  

#include<cmath>  

#include<string.h>  

#include<stdio.h>  

using namespace std;  

int main()  

{  

   // freopen("r.txt","r",stdin);  

    long long int arr[6666];  

    arr[1]=1;  

    int a,b,c,d;  

    a=b=c=d=1;  

    int i;  

    for(i=2;i<5844;i++)  

    {  

        arr[i]=min(arr[a]*2,min(arr[b]*3,min(arr[c]*5,arr[d]*7)));  

        //cout<<arr[i]<<endl;  

        if(arr[i]==arr[a]*2)  

            a++;  

        if(arr[i]==arr[b]*3)  

            b++;  

        if(arr[i]==arr[c]*5)  

            c++;  

        if(arr[i]==arr[d]*7)  

            d++;  

    }  

    //cout<<arr[5200]<<endl;  

    int n;  

    while(~scanf("%d",&n))  

    {  

        if(n==0) break;  

        cout<<"The "<<n;  

        if(n%10==1&&n%100!=11)  

            cout<<"st humble number is ";  

        else if(n%10==2&&n%100!=12)  

            cout<<"nd humble number is ";  

        else if(n%10==3&&n%100!=13)  

            cout<<"rd humble number is ";  

        else  

            cout<<"th humble number is ";  

        cout<<arr
<<"."<<endl;  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: