問題描述
乙個採購員去銀行兌換一張y元f分的支票,結果出納員錯給了f元y分。採購員用去了n分之後才發覺有錯,於是清點了餘額尚有2y元2f分,問該支票面額是多少?
輸入格式:
輸入在一行中給出小於100的正整數n。
輸出格式:
在一行中按格式y.f輸出該支票的原始面額。如果無解,則輸出no solution。
輸入樣例1:
23輸出樣例1:
25.51
輸入樣例2:
22輸出樣例2:
no solution
太菜了沒寫出來,沒注意題目的條件n<100,也沒分析y與n的大小關係
問題分析
首先,有題目可知n<100,且為正整數;已知原來是f元y分,花掉n分後是2y元2f分(y、f大小不確定)
乍看一下是二元一次方程,且條件只有乙個(沒解出來的原因就在這),但通過分析n的大小可以得出y與f的關係
情況一:當y>n時,
得出兩個方程 f100+y-n=200y+2f
f = 2y
但這個方程解出來 y=-3n這是不可能的
情況二:y=n時,根據方程也不可能
情況三:y100+y-n = 200y+2f即98f=199*y+n
題目顯示f為分,所以f正常情況下應該>0而≤100,由此範圍得知y的取值最大不超過50
所以可以通過暴力解法(雙重迴圈),乙個個試是否滿足條件
正確**
#include
using
namespace std;
intmain()
}}if(flag==1)
}
總結
乙個二元一次方程人工多解,但是計算機可以通過迴圈求解
7 19 支票面額 15 分
乙個採購員去銀行兌換一張y元f分的支票,結果出納員錯給了f元y分。採購員用去了n分之後才發覺有錯,於是清點了餘額尚有2y元2f分,問該支票面額是多少?輸入格式 輸入在一行中給出小於100的正整數n。輸出格式 在一行中按格式y.f輸出該支票的原始面額。如果無解,則輸出no solution。輸入樣例1...
7 19 支票面額
7 19 支票面額 15 分 乙個採購員去銀行兌換一張y元f分的支票,結果出納員錯給了f元y分。採購員用去了n分之後才發覺有錯,於是清點了餘額尚有2y元2f分,問該支票面額是多少?輸入格式 輸入在一行中給出小於100的正整數n。輸出格式 在一行中按格式y.f輸出該支票的原始面額。如果無解,則輸出no...
7 19 支票面額
7 19 支票面額 15 分 乙個採購員去銀行兌換一張y元f分的支票,結果出納員錯給了f元y分。採購員用去了n分之後才發覺有錯,於是清點了餘額尚有2y元2f分,問該支票面額是多少?輸入格式 輸入在一行中給出小於100的正整數n。輸出格式 在一行中按格式y.f輸出該支票的原始面額。如果無解,則輸出no...