ModifiedKaprekarNumbers

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Link:

https://www.hackerrank.com/challenges/kaPRekar-numbers

1from__future__importprint_function234deffind_kaprekar(num):56num_square = str(num ** 2)78iflen(num_square) == 1:9ifnum == 1:10print(num, end ='')11returnTrue12eliflen(num_square) % 2 ==0:13d = len(num_square) / 214ifnum == int(num_square[0:d]) + int(num_square[d:2*d]):15print(num, end ='')16returnTrue17else:18d = len(num_square) // 219ifnum == int(num_square[0:d]) + int(num_square[d:(2*d+1)]):20print(num, end ='')21returnTrue2223242526defmain():2728p =int(raw_input())29q =int(raw_input())3031have_kaprekar_num =False3233foriinxrange(p, q+1):34iffind_kaprekar(i):35have_kaprekar_num =True3637ifhave_kaprekar_num ==False:38print("INVALID RANGE")39else:40print()4142main()

//其他1

1defis_kaprekar(n):2squared = str(n ** 2)3mid = len(squared) -len(str(n))4a = int(squared[mid:])#这种写法更简便5b = int(squared[:mid])iflen(squared) > 1else06returna + b == n#直接返回一个判断式子78p =int(raw_input())9q =int(raw_input())1011kaprekars = [str(x)forxinxrange(p, q + 1)ifis_kaprekar(x)]12print''.join(kaprekars)ifkaprekarselse'INVALID RANGE'#join函数的使用

//其他2

1importsys23p =int(sys.stdin.readline())4q =int(sys.stdin.readline())56kaprekar = [1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4950, 5050, 7272, 7777, 9999, 17344, 22222, 77778, 82656, 95121, 99999]#更省资源,因为数量不多,所以干脆一次性算出7ans = [str(k)forkinkaprekarifk>=pandk<=q]8ifans:9print''.join(ans)10else:11print'INVALID RANGE'

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航