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

首先说下什么是回文数,就是从左往右看和从右往左看是同一个数,例如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;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值