C语言黑洞数字123,20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数

#20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数

###来源 这个美妙的名称出自圣经《新约全书》中约翰福音第21章:耶稣对他们说:“把刚才打的鱼拿几尾来。”西门·彼得就去把网拉到岸上。那网网满了大鱼,共一百五十三尾。鱼虽这样多,网却没有破。

###特点 任写一个3的倍数(正整数),把各位数字的立方相加,得出和,再把和的各位数字立方后相加,如此反复进行,最后必然出现“圣经数”。

###功能 判断任一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

{

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));

}

}

###测试截图

cd3692a3e49e8c19302ab92ed72a76ca.png

###码云链接

###参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值