当前位置: 代码迷 >> Eclipse >> 八除不尽的数 【if语句】
  详细解决方案

八除不尽的数 【if语句】

热度:74   发布时间:2016-04-23 02:10:31.0
8除不尽的数 【if语句】
一个自然数N被8除余1,所得的商N1被8除也余1, 
而第二次的商N2(N2 为N1 除以8的结果) 被8除后余7,将第二次的商N2再除以8得到一个商为a. 
又知这个自然数N被17除的余数是4.这个N被17除之后的商为M,M被17除之后得到商为B,余数为15, 又知道B是a的2倍. 

求这个自然数.



------解决方案--------------------
参考一下:
Java code
public class DivideBy8{    public static void main(String[] args)    {        //第一种算法,从a=1开始计算这个数;按第2个逻辑从B=2开始计算,看两个数是否相等。        int x,y;        System.out.println(" ------------ 第一种算法 -----------------");        for(int i=1;;i++)        {            x=((8*i+7)*8+1)*8+1;            y=(2*i*17+15)*17+4;            if(x==y)            {                System.out.println("This number is "+x+" and B is "+                        (2*i)+" and a is "+i);                break;            }        }        //第二种算法,从513开始计算,看是否符合题目的两个逻辑。        System.out.println(" ------------ 第二种算法 -----------------");        for(int i=513;;i++)        {            if((i%8==1)&&(i%17==4)&&((i/8)%8==1)&&((i/17)%17==15)&&((i/64)%8==7)&&                (i/(17*17)==2*(i/(8*8*8))))            {                System.out.println("This number is "+i+" and B is "+(i/(17*17))+                        " and a is "+(i/(8*8*8)));                break;            }        }    }}
------解决方案--------------------
我也来一个,哈哈!
Java code
//下面是方法体,自己贴进方法哈!int n, n1, n2, a, b, m;        n = 8 + 1;// 初始化变量        while (true) {//死循环,直到判断完毕            m = n / 17;//获得M值,因这些判断值跨度比较大,一次相差17,所以先判断。            if (n % 17 == 4 && m % 17 == 15) {//当自然数N被17除(N除以17)的余数是4,商为M,并且M除以17的余数为15时进入                b = m / 17;//获得B的值,用作跟A判断                n1 = n / 8;//开始判断跨度小的。N1是N除以8的商。                if (n1 % 8 == 1) {//N1除以8余1则进入                    n2 = n1 / 8;//N2是N1除以8的商。                    if (n2 % 8 == 7) {//N2除以8余7则继续判断                        a = n2 / 8;//得出N2除以8的商,也就是A                        if (b / a == 2) {//判断B是否是A的两倍,是则进入,打印并跳出死循环。                            System.out.println("This number is " + n);                            break;                        }                    } else {                        n += 8;                    }                } else {                    n += 8;                }            } else {                n += 8;            }        }
  相关解决方案