这个美妙的名称出自圣经《新约全书》中约翰福音第21章:耶稣对他们说:“把刚才打的鱼拿几尾来。”西门·彼得就去把网拉到岸上。那网网满了大鱼,共一百五十三尾。鱼虽这样多,网却没有破。java
任写一个3的倍数(正整数),把各位数字的立方相加,得出和,再把和的各位数字立方后相加,如此反复进行,最后必然出现“圣经数”。git
判断任一3的倍数的正整数,是不是圣经数,输出计算过程。测试
1.判断输入数据X是不是3 的倍数的数 2.While(X!=153){ (1)将输入的数转化多个1位的数字 (2)计算每一个1位数字的三次方,求和,赋值给X } 3.已验证
package Bible; import java.util.Scanner; /** * @author 15205 * @date 2019/5/2 12:35 */ public class Input { public static void main(String[] args) { int n = 0; while (n % 3 != 0 || n <= 0) { System.out.println("请输入一个三的倍数(正整数)"); Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); } while(n!=153) { Sanci sanci = new Sanci(); n = sanci.Sanci(n); System.out.println(n); } System.out.println("已验证"); } } class Len { int Len(int n) { int len; Integer m = n; len = m.toString().length(); return len; } } class Chaifeng { int[] Chaifeng(int n) { int len; Len length=new Len(); len=length.Len(n); int a[]; a = new int[len]; int i; for (i = 0; i < len; i++) { a[i] = n % 10; n = n / 10; } return a; } } class Sanci { int Sanci(int n) { int i; int len; Len length=new Len(); len=length.Len(n); int a[]; Chaifeng chaifeng=new Chaifeng(); a=chaifeng.Chaifeng(n); n=0; for(i=0;i<len;i++) { n=a[i]*a[i]*a[i]+n; } return n; } }
package Bible; import junit.framework.TestCase; import org.junit.Test; /** * @author 15205 * @date 2019/5/2 13:43 */ public class LenTest extends TestCase { Len a = new Len(); Sanci b = new Sanci(); @Test public void testLen() throws Exception { assertEquals(3, a.Len(123)); assertEquals(1, a.Len(3)); assertEquals(4, a.Len(1236)); } @Test public void testSanci() throws Exception { assertEquals(27,b.Sanci(3)); assertEquals(351,b.Sanci(27)); assertEquals(126,b.Sanci(15)); assertEquals(9,b.Sanci(12)); } }