小明手中有硬币,小红手中有若干张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