兔子不吃草


私信TA

用户名:uq_96525417843

访问量:662

签 名:

等  级
排  名 26449
经  验 574
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:主函数用for循环i从10000~999999,判断函数judge(i)内,(1)先分五位数和六位数两种情况判断是不是回文数字,是->flag=1,否->直接返回0(这个放到下面的判断中的else);(2)判断该回文数字(flag=1)的各个数位之和是否等于输入的整数,是->直接返回1,否->直接返回0。

注意事项:主函数最后要判断一下,不符合题目条件的要输出-1,这个不能忘记。

参考代码:

#include<stdio.h>

int judge(int long number,int n)

{

int a,b,c,d,e,f;

int sum;

int flag=0;

int num=number; 

f=number%10;//个 

number=number/10;

e=number%10;//十 

number=number/10;

d=number%10;//百 

number=number/10;

c=number%10;//千 

number=number/10;

b=number%10;//万 

number=number/10;

a=number%10;//十万 

//判断是否是回文数字 

if(num<100000)

{

if(b==f&&c==e)

{

flag=1;

}

}

else

{

if(a==f&&b==e&&c==d)

{

flag=1;

}

}

//判断该回文数字的各个数位之和是否等于输入的整数

if(flag==1)

{

sum=a+b+c+d+e+f;

if(sum==n)

{

return 1;

}

else

{

return 0;

}

}

else

{

return 0;

}

}

int main()

{

int n;

int long i;

scanf("%d",&n);

int p=0;

for(i=10000;i<1000000;i++)

{

if(judge(i,n))

{

p=1;

printf("%ld\n",i);

}

if(p==0)

{

printf("-1");

}

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »