鱼C论坛

 找回密码
 立即注册
查看: 1591|回复: 3

[已解决]c问题求助!!!谢谢了

[复制链接]
发表于 2019-1-20 14:28:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述:

已知三位整数x和y满足x+y=1333,其中x的个位数是y的百位数,y的个位数是x的百位数,它们的十位数一样。求满足这样条件的x和y。

输入:

输出:
419+914=1333
......
按X从小到大输出,每个等式一行

代码如下,请问代码有什么问题吗?
#include<stdio.h>
int main()
{
        int x,y;
        for(x=100;x<1000;x++)
        {
                for(y=100;y<1000;y++)
                        if(x+y==1333)
                        if(x%10==y/100)
                        if((x%100-x%10)==(y%100-y%10))
                        if(x/100==y%10)
                        printf("%d + %d = 1333\n",x,y);                
        }
        return 0;
} 
最佳答案
2019-1-20 16:44:32
#include <stdio.h>

int main()
{
    int x,y;
    for(x=100;x<1333;x++)
    {
        y=1333-x;
        if((x%10==y/100)&&(y%10==x/100)&&(x%100/10==y%100/10))
        {
            printf("%d+%d=1333\n",x,y);
        }
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-20 15:08:38 | 显示全部楼层
不知道你要问什么,就运行而 言是没问题。
不过有条件,还2层FOR太浪费了。

我写的参考下:
#include<stdio.h>
int main()
{
        int x,y;
                int g, s, b;

        for(x=100;x<1000;x++)
        {

                        g = x % 10; // 取个位
                        s = (x / 10) % 10; // 取十位
                        b = (x / 10 / 10) % 10; // 取百位

                        // 个 百位对换,生新y
                        y = g * 100 + s * 10 + b;
                        
                        // 如果y小,说明不是3位数
                        if (y<x)
                                continue;
                        
                        // 相加是否等于1333
                        if (x+y==1333)            
                                printf("%d + %d = 1333\n",x,y);                
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-20 16:39:00 | 显示全部楼层
一般这种题是列举x然后用1333-x去得到y看看漫步满足要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-20 16:44:32 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>

int main()
{
    int x,y;
    for(x=100;x<1333;x++)
    {
        y=1333-x;
        if((x%10==y/100)&&(y%10==x/100)&&(x%100/10==y%100/10))
        {
            printf("%d+%d=1333\n",x,y);
        }
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-3 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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