上海交大机试题目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日