Find the largest palindrome made from the product of two 3-digit numbers.
回文数字读取两种方式相同。由两个2位数字的乘积制成的最大回文是9009 = 91×99。
找到由两个3位数字的乘积制成的最大回文数字。
思路
1.将数字翻转 %10可以得到最低位,得到最低位后*10进行翻转,最后将数字/10,重复之前步骤,直到num为0
2.枚举两个1000以内相乘得到的结果并判断是否为回文数
3.找到最大的回文数
注意:
这道题的palindrome函数其实用bool函数表达效果会更好,我的编译器没有bool函数,所以大家记得优化
#include <stdio.h>
#include <stdlib.h>
int palindrome(int num){
int store = num, back = 0;
while(num){
back = num % 10 + back * 10;
num /= 10;
}
if(back == store){
return 1;
}else{
return 0;
}
}
int main(){
int max = 0;
for(int i = 0; i < 999; i++){
for(int j = 0; j < 999; j++){
if(palindrome(i * j) && (i * j > max)){
max = i * j;
}
}
}
printf("%d\n",max);
return 0;
}
本文介绍了一种通过编程方法寻找由两个3位数相乘得到的最大回文数的方法。通过翻转数字判断其是否为回文数,并使用双重循环枚举所有可能的组合,最终找出符合条件的最大值。
518

被折叠的 条评论
为什么被折叠?



