Java和python分别找出小于10000000的阿姆斯特朗数比较

Java:


    public void getArmstrongNum(int numMax){
        System.out.print("小于"+numMax+"的Armstrong数:\r\n");
        int num = 0;
        while(num<numMax) {
            String numString = num+"";
            int i = 0;
            int resultEx = 0;
            while(i<numString.length()) {
                int numChar = Integer.parseInt(String.valueOf(numString.charAt(i)));
                resultEx += Math.pow(numChar,numString.length());
                i++;
            }
            if(resultEx == num ){
                System.out.print(num+"是Armstrong数\r\n");
            }
            num++;
        }
    }

python:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time;  # 引入time模块

# Python 找出小于用户输入的数字中的阿姆斯特朗数
 
# 获取用户输入的数字
inputNum = int(input("请输入一个数字: "))
ticks1 = time.time()
num = 0
while num < inputNum:
	# 初始化变量 sum
	sum = 0
	# 指数
	n = len(str(num))
	 
	# 检测
	temp = num
	while temp > 0:
	   digit = temp % 10
	   sum += digit ** n
	   temp //= 10
	 
	# 输出结果
	if num == sum:
	   print(num,"是阿姆斯特朗数")
	num+=1
	#else:
	#print(num,"不是阿姆斯特朗数")
ticks2 = time.time()
timeUsed = ticks2 - ticks1;
print("找出小于{0}的阿姆斯特朗数用时{1}".format(inputNum,timeUsed))

结果:

java 小于1000000的armstrong数  用时 904ms

 

python 计算出小于1000000的armstrong数 用时 3.9s

 

java 小于10000000的armstrong数  用时 8s277ms

python小于10000000的armstrong数 用时 46s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值