上海交大机试题目old bill问题
做题感悟:1.多样例输入一定要用while循环
2.一定要注意审题 输出最贵的价格可以进行倒循环,得到最贵的就不再进行循环,应增加判断的变量,使得得到最贵价格是直接跳出循环
3跳出循环分内外 一定要牢记内外关系
备注:我还是觉得英文版机试题好难哇
#include <iostream>
#include <cstdio>
using namespace std;
//猜测原始价格
int jiage(int a,int b,int c,int d){
int flag=0;//判断是否可以被整除
for(int i=9;i>0;i--){//倒循环可以保证输出的价格是最大的
for(int j=9;j>=0;j--){//两次循环都要跳出
int x=10000*i+1000*a+100*b+10*c+j;
int m=x/d;
if(x%d==0){
flag=1;
cout<<i<<' '<<j<<' '<<m<<endl;
break;//得到最大值即跳出内层循环
}
}
if(flag==1){
break;//跳出外层循环
}
}
if(flag==0){
cout<<0<<endl;
}
return 0;
}
int main(){
int d,a,b,c;
while(cin>>d){
cin>>a>>b>>c;
jiage(a,b,c,d);
}
return 0;
}
Xiaocan Zhang 写于2022年1月26日