首页 > 其他分享 >【中学】零钱换整钱

【中学】零钱换整钱

时间:2022-11-14 08:22:41浏览次数:62  
标签:10 中学 const 硬币 int 18 整钱 零钱 TIME

小明手中有硬币,小红手中有若干张10元的纸币。已知 1 角硬币厚 1.8mm,5 角硬币厚 1.5mm,1 元硬币厚 2.0mm 。小红拿出若干张10元的纸币,小明要将 1 角的硬币放成一摞,将 5 角的硬币放成一摞,将 1 元的硬币放成一摞,如果 3 摞硬币一样高,且三摞硬币的金额之和正好等于小红要求的面值,则双方交换,否则没有办法交换。

输入: 
    小红希望交换几张10元的纸币

输出
    1 角的数量,5 角的数量,1元的数量

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1

以文本方式显示

8↵

以文本方式显示

50,60,45↵

1秒 64M 0
测试用例 2 以文本方式显示

4↵

以文本方式显示

No change.↵

1秒 64M 0

 

#define _CRT_SECURE_NO_WARNINGS 1    
#include <stdio.h>  
#include <stdbool.h>
int main(void)
{
    //因为1.8,1.5,2.0的最小公倍数为18,因此
    const int ONE = 18 / 1.8;
    const int FIVE = 18 / 1.5;
    const int TEN = 18 / 2.0;
    const int ONE_TIME = ONE * 1 + FIVE * 5 + TEN * 10;
    //printf("ONE_TIME = %d\n", ONE_TIME);
    int n;
    bool flag = false;
    if (1 == scanf("%d", &n)) {
        n *= 100;
        int i;
        for (i = 1; i * ONE_TIME <= n; i++) {
            if (i * ONE_TIME == n) {
                flag = true;
                break;                
            }
        }
        if (flag)
            printf("%d,%d,%d\n", ONE * i, FIVE * i, TEN * i);
        else
            printf("No change.\n");
        //printf("i = %d\n", i);
    }
    return 0;
}

 

标签:10,中学,const,硬币,int,18,整钱,零钱,TIME
From: https://www.cnblogs.com/alien-han/p/16887911.html

相关文章