标签:product% 数字 哪些 int product 汉字 && 100 1000
看到 陈同学做的一道题,手痒痒,也做了一份,凑个热闹。/*(编程题)下列乘法算式中:每个汉字代表1个数字(1~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。 赛软件 × 比赛 ---------- = 软件比拼 试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。 【参考结果】 465 * 14 = 6510 */ #include<iostream> using namespace std; int main() { int product; for(int sai=1;sai<=9;++sai)//赛 for(int ruan=1;ruan<=9;++ruan)//软 for(int jian=1;jian<=9;++jian)//件 for(int bi=1;bi<=9;++bi)//比 if(sai!=ruan&&ruan!=jian&&jian!=bi) { product=(sai*100+ruan*10+jian)*(bi*10+sai); if(product/1000==ruan&&(product%1000)/100==jian&&(product%100)/10==bi) cout<<(sai*100+ruan*10+jian)<<'*'<<(bi*10+sai)<<'='<<product<<endl; } return 0; }
这个题有些问题。事实上,“拼”可以是0时,参考结果是唯一结果。
“拼”不可以是0时,
if(product/1000==ruan&&(product%1000)/100==jian&&(product%100)/10==bi)
应该为
if(product/1000==ruan&&(product%1000)/100==jian&&(product%100)/10==bi&&product%10!=0)这个程序的算法复杂度比陈同学的更好一些; 每一内层for中先加if,还能更好。
编程序是要讲效率的。
标签:product%,数字,哪些,int,product,汉字,&&,100,1000 来源: https://blog.51cto.com/sxhelijian/2950226
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。