7-19 支票面额【PAT】

不打扰是莪最后的温柔 提交于 2020-01-26 05:11:33

题目:

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

输入格式:

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

输出格式:

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

输入样例1:

23

输出样例1:

25.51

输入样例2:

22

输出样例2:

No Solution

思路:

  根据题目推导出关系式:f.y0.n=f1.y1=2y.2f=2(y.f)f.y-0.n = f1.y1 = 2y.2f = 2*(y.f)200y+2f+n=100f+y200*y+2*f+n = 100*f+y,化简之后为98f199y=n98*f-199*y=n。使用for循环根据关系式用if语句判断出条件,如果有就按照格式输出;如果没有输出“No Solution”即可。

AC代码:

#include<iostream>
using namespace std;
int main(void)
{
	int x, y, n, flag = 1;
	cin >> n;
	for (y = 0; y <= 100; y++)
	{
		for (x = 0; x <= 100; x++)
			if (98 * x == 199 * y + n)
			{
				flag = 0;
				cout << y << "." << x << endl;
			}
	}
	if (flag)
		cout << "No Solution" << endl;
	return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!