回 帖 发 新 帖 刷新版面

主题:找出满足下述条件的4位自然数

编写程序,找出满足下述条件的4位自然数
1,该自然数是11的倍数
2,十位数和百位数的和等于千位数
3,百位数和十位数组成的两位自然数是一个完全平方数,例如,百位数为2,十位数为5,则25 是5的方,25是一个完全平方数
4,四位自然数的个位数字互不相同
这第四个条件看不懂

回复列表 (共13个回复)

沙发

还有编写这个程序也不会

板凳

真不知道你是要求作业还是真不会
不过这样的题也太简单了吧,自己如果认真想肯定没问题的

3 楼

public class Ziranshu
{
     public static void main(String args[])
     {
           long number=0;
           int Ge,Shi,Bai,Qian,t;
           for(Ge>=0&&Ge<=9)
            for(Shi>=0&&Shi<=9)
             for(Bai>=0&&Bai<=9)
               for(Qian>0&&Qian<=9)       
                    {
                      number%11==0;
                      Shi+Bai=Qian;
                      ShiBai=t*t;
                      Ge!=Shi!=Bai!=Qian;
                     }
           number=number+Qian*1000+Bai*100+Shi*10+Ge;
           System.out.println("4位自然数是:"+number+);
       }
}
我真不会呀,我编写出来运行不出来
我很笨的啦,对不起大家哦,让大家帮我回答那么简单的题目

4 楼

第四个条件我怀疑是每个数位上的数字都不相同

两位自然数为完全平方的只有16, 25, 36, 49, 64, 81,
然后根据第一个条件
符合条件的千, 百, 十位数只能是716, 725, 936, 981

然后根据某自然数奇数位数字之和减偶数位数字之和能整除11,则此自然数能整除11的性质,
可以发现只有
9360
9812
符合条件

关于你的代码,for循环好像有问题~~怎么看起来像while啊
还有这个 Ge!=Shi!=Bai!=Qian; //这是什么意思?java里面没有这样的写法吧?

5 楼

public class Ziranshu
{
    public static void main(String args[])
    {
        int result = 0;
        for(int i = 4; i != 10; ++i)
        {
            int placeTen = i * i % 10;
            int placeHundred = i * i / 10;
            int placeThousand = placeTen + placeHundred;
            if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
            {
                int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
                if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
                {
                    result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
                    System.out.println("result = " + result);
                }
            }
        }
        if(result == 0)
            System.out.println("Can't find such number");
    }
}

6 楼

万分感谢

7 楼

public class Ziranshu
{
    public static void main(String args[])
    {
        int result = 0;
        for(int i = 4; i != 10; ++i)
        {
            int placeTen = i * i % 10;
            int placeHundred = i * i / 10;
            int placeThousand = placeTen + placeHundred;
            if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
            {
                int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
                if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
                {
                    result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
                    System.out.println("result = " + result);
                }
            }
        }
        if(result == 0)
            System.out.println("Can't find such number");
    }
}

 
其中的      int placeTen = i * i % 10;
            int placeHundred = i * i / 10;
            int placeThousand = placeTen + placeHundred;
不懂什么意思哦

8 楼

因为十位和百位组成完全平方数
所以用i * i求出这个完全平方数
然后i * i % 10取其对10的模就是个位数字啊,也就是所求数的十位数
i * i / 10就是其十位数,也就是所求数的百位数
placeTen + placeHundred 求出了所求数的千位数

9 楼

其中的“根据某自然数奇数位数字之和减偶数位数字之和能整除11,则此自然数能整除11的性质,
可以发现只有
9360
9812”
不懂   这是什么性质?
9360
9812
这两个数除11除不掉的。不能整除诶

10 楼

public class Ziranshu
{
    public static void main(String args[])
    {
        int result = 0;
        for(int i = 4; i != 10; ++i)
        {
            int placeTen = i * i % 10;
            int placeHundred = i * i / 10;
            int placeThousand = placeTen + placeHundred;
            if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
            {
                int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
                if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
                {
                    result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
                    System.out.println("result = " + result);
                }
            }
        }
        if(result == 0)
            System.out.println("Can't find such number");
    }
}

 

 其中的int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
不懂怎么理解

我来回复

您尚未登录,请登录后再回复。点此登录或注册