支票面额 PAT

原题如下:

一个采购员去银行兑换一张yyff分的支票,结果出纳员错给了ffyy分。采购员用去了nn分之后才发觉有错,于是清点了余额尚有2y2y2f2f分,问该支票面额是多少?

输入格式:

输入在一行中给出小于100的正整数nn

输出格式:

在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution

输入样例1:

23

输出样例1:

25.51

输入样例2:

22

输出样例2:

No Solution
该题其实很简单,就是用了一个穷举法,问题的关键在于需要知道f和y的取值范围,由于是f分和y分,因此f和y都是小于100的,试想,银行出纳员会给你100分或者大于100分的分值吗?肯定会兑换成元的,所以可以确定的是:

0<= f < 100

0<= y < 100

知道了具体的f和y的范围,再来求正整数解就变得异常简单了!(博主在做这道题的时候就没有看到f和y的范围,导致耽误了很长的时间仍不得其解,恕博主nev了……)

上代码:

#include <stdio.h>
int main()
{
	int n, y, f, flg = 0;
	scanf("%d", &n);
	for (y = 0; y < 100; y++)
	{
		for (f = 0; f < 100; f++)
		{
			if (98 * f - 199 * y == n)
			{
				printf("%d.%d\n", y, f);
				flg = 1;
			}
		}
	}
	if(flg == 0)
		printf("No Solution\n");
	return 0;
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值