c语言/百万富翁,兑换钱币问题纠错

img

img

img

img


大一初学c语言,真的看不出来问题在哪,百万富翁的那个富翁给的钱老是不对。兑换钱币的,第一个case是对的,后面就把前面的加上了。

换钱交易里最后这个j的值就是结果。


int main()
{
    int n = 30, i, mf = 0, fm = 0;
    double j = 0.01;
    // scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        mf += 100000;
        j *= 2;
    }
    fm = j;
    printf("%d\n%d", mf, fm);
    
    return 0;
}

兑钱直接穷举。

int main()
{
    int n = 1, i, yi, er, wu, j = 0;
    while (n)
    {
        scanf("%d", &n);
        i = 0;
        for (yi = 0; yi <= n; yi++)
        {
            for (er = 0; er <= n / 2; er++)
            {
                for (wu = 0; wu <= n / 5; wu++)
                {
                    if (n == wu * 5 + er * 2 + yi)
                        i++;
                }
            }
        }
        j++;
        printf("case %d: %d\n", j, i);
    }

    return 0;
}