阿里巴巴面试题:求最大的四位数满足是回文数且能分解成两个两位数相乘

来源:互联网 发布:wifi信号稳定软件 编辑:程序博客网 时间:2024/06/05 07:39

首先说下什么是回文数,就是从左往右看和从右往左看是同一个数,例如1221,4554这些都是回文数,而1234这就不是。

再解释下什么叫能分解成两个两位数相乘,例如9999肯定是最大的四位回文数,但是很明显不能分解成两个两位数相乘的形式,所以不符合要求,像9009,他是回文数,而且9009=91*99,所以符合要求。

下面是代码

#include"iostream"using namespace std;bool JudgePalindrome(int n){int key=n;if(n<1000|n>10000)return false;int sum=0;while(n!=0){//如果n反过来组成的数还等于n即是回文数 sum=n%10+sum*10;n=n/10;}if(sum==key)return true;return false;}int main(){int i,j,p=0;for(i=10;i<100;i++)for(j=10;j<100;j++)if(i*j>p&&JudgePalindrome(i*j))p=i*j;cout<<p<<endl;return 0;} 


0 0
原创粉丝点击