鱼C论坛

 找回密码
 立即注册
查看: 25290|回复: 129

题目4:找出由两个三位数乘积构成的回文

  [复制链接]
发表于 2021-10-27 13:42:09 | 显示全部楼层
本帖最后由 番杰 于 2021-10-27 13:58 编辑
  1. #include<stdio.h>

  2. int mian(void)
  3. {
  4.         int t1,t10,t100,temp;   
  5.         int a,b,max;
  6.         int flag = 0 ;
  7.         for(int i = 997799;i>10000;i--)  //  从997799开始,是因为它是998001(999*999)之下最大的回文数
  8.         {
  9.                 if(i>100000)  //六位回文数
  10.                 {
  11.                         t1 = i % 10;
  12.                         t10 = (i % 100) / 10;
  13.                         t100 = (i % 1000) /100;
  14.                         temp = (t1 * 100) + (t10 * 10) + t100;       
  15.                        
  16.                         if(temp == (i/1000))   //判断是否是回文数
  17.                         {
  18.                                 for(int j = 999;j>=100;j--)
  19.                                 {
  20.                                         if(i % j == 0)
  21.                                         {
  22.                                                 if(j > 99 && j < 1000)
  23.                                                 {
  24.                                                         a = j ;
  25.                                                         b = i / j ;
  26.                                                         max = i;
  27.                                                         flag = 1;
  28.                                                         break;
  29.                                                 }
  30.                                         }
  31.                                 }
  32.                                 if(flag == 1)
  33.                                         break;       
  34.                         }
  35.                 }
  36.                 else   //五位回文数
  37.                 {
  38.                         t1 = i % 10;
  39.                         t10 = (i % 100) / 10;
  40.                         temp = (t1 * 100) + (t10 * 10) ;       
  41.                        
  42.                         if(temp == (i/1000))
  43.                         {
  44.                                 for(int j = 999;j>=100;j--)
  45.                                 {
  46.                                         if(i % j == 0)
  47.                                         {
  48.                                                 if(j > 99 && j < 1000)
  49.                                                 {
  50.                                                         a = j ;
  51.                                                         b = i / j ;
  52.                                                         max = i;
  53.                                                         flag = 1;
  54.                                                         break;
  55.                                                 }
  56.                                         }
  57.                                 }
  58.                                 if(flag == 1)
  59.                                         break;       
  60.                 }
  61.         }

  62.         printf("%d = %d + %d",c,a,b);

  63.         return 0 ;
  64. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-30 07:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表