阿镝要努力变优秀! 2022-02-08 21:39 采纳率: 100%
浏览 54
已结题

C语言回文数,由于超时提交不了

(提交上去总说我超时,求大佬帮帮我!!!解决了有重筹)
题目:
一个正整数 n (10< n< 100), 表示要求满足的数位和。
输出
若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499

我的答案:
#include<stdio.h>
int huiwen(int n)
{
int x, s = 0;
x = n;
while (1)
{
s = s * 10 + x % 10;
x = x / 10;
if (s == n)
{
return 1;
break;
}
}

}

int main()
{
int sum, i;
scanf("%d", &sum);
for (i = 10000; i < 1000000; i++)
{
if (huiwen(i) == 1)
{
if ((i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10) == sum)
printf("%d", i);
else if ((i % 10 * 2 + i / 10 % 10 * 2 + i / 100 % 10) == sum)
printf("%d", i);
else
printf("-1");
}
}

}

  • 写回答

3条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    int huiwen(int n,int m)
    {
        int x, s = 0, t=0;
        x = n;
        while (x>0)
        {
            t = t + x % 10;
            s = s * 10 + x % 10;
            x = x / 10;
        }
        if (s == n && t==m)
            return 1;
        else
            return 0;
    }
    
    int main()
    {
        int sum, i,cou = 0;
        scanf("%d", &sum);
        for (i = 10000; i < 1000000; i++)
        {
            if (huiwen(i,sum) == 1)
            {
                printf("%d\n", i);
                cou++;
            }
        }
        if (cou==0)
            printf("-1");
        return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 修改了问题 2月8日
  • 创建了问题 2月8日

悬赏问题

  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)