【HDU 3199】【水题】Hamming Problem

类似 1058的丑数,用题目给的数字带进去就好。


#include "iostream"
#include "cstring"
long long dp[10005];
using namespace std;
int main(int argc, char const *argv[])
{
    long long   a,b,c,d;
    while(~scanf("%lld %lld %lld %lld",&a,&b,&c,&d))
    {
        int num1=0,num2=0,num3=0;
        memset(dp,0,sizeof(dp));
        dp[0]=1;
        long long  hum[3]={a,b,c};
        for (int i = 1; i<=d; ++i)
        {
            long long temp=min(min(a*dp[num1],b*dp[num2]),c*dp[num3]);
            if(temp==a*dp[num1]) num1++;
            if(temp==b*dp[num2]) num2++;
            if(temp==c*dp[num3]) num3++;
            dp[i]=temp;
        }
        printf("%lld\n",dp[d]);
    }
    return 0;
}


你可能感兴趣的:(c,水题)