C语言 求1000到9999以内所有回文数的和 5

 我来答
自我编程
2019-12-25 · 科技优质答主
自我编程
采纳数:1481 获赞数:4282

向TA提问 私信TA
展开全部

有2种方法1:数字反向后与原数字相同即是回文数。方法2:数字转成字符串,左右对称即是回文数。

#include<stdio.h>

#include<stdlib.h>

int ishw1(int num);

int ishw2(int num);

int main()

{

    int i;

    printf("方法一,数字倒置后比较两个数字是否相等,回文数有:\n");

    for(i=1000;i<9999;i++)

        if(ishw1(i))printf("%d ",i);

    printf("\n");

    printf("方法二,数字转成字符串首尾循环比较是否对称,回文数有:\n");

    for(i=1000;i<9999;i++)

        if(ishw2(i))printf("%d ",i);

    printf("\n");

    return 0;

}

int ishw1(int num)

{

    int num2=0,num1=num;

    while(num1/10>0)

        num2=num2*10+num1%10,num1=num1/10;

    num2=num2*10+num1;

    if(num==num2) return 1;

    else return 0;

}

int ishw2(int num)

{

    char snum[5],*p0=NULL,*p1=NULL;

    itoa(num,snum,10);

    snum[4]=0;

    p0=p1=snum;

    while(*p1!=0)p1++;

    p1--;

    while(*p0==*p1 && p0<=p1)p0++,p1--;

    if(p0>p1)return 1;

    else return 0;

}

匿名用户
2019-12-25
展开全部

不难吧

分离出  个十百千 就行

请看

仅供参考


BTW,求和?

if里加上  sum += n;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草原上之狼
高粉答主

2019-12-25 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:3838万
展开全部
set talk off
clear
n=0
for x=1000 to 9999
a=int(x/1000)
b=int((x-a*1000)/100)
c=int((x-a*1000-b*100)/10)
d=mod(x,10)
if a=d and b=c and mod(x,6)=0
n=n+1
endif
endfor
? n
set talk on
return
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式