找规定的年龄
2022/2/28 6:24:13
本文主要是介绍找规定的年龄,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
规则
某人的年龄的三次方是一个四位数,四次方是一个六位数。这个四位数和六位数共十个数字,分别是0-9的一个数字,互不相同,求这个年龄
思路:
初步确定一个范围,我就从1-100循环,满足四位数六位数的年龄应该就在这个范围里面。
然后把三次方,四次方得到的数字拆分成数组,为了区分数组中的数字是拆出来的还是数组自带的,将数组全部赋值为-1,用了一个十位数的数组。然后用到set的特性就是可以去重,把两个数组的数字都放到set里面去,如果不重复的话,此时set里的数就是0-9再加一个-1,共11位数就满足了。
想到这个用c语言的话,两次拆分不好调用,又没有set,又一次用了java。。。。
import java.util.HashSet; import java.util.Set; public class Age { public static void main(String[] args) { int num3 = 0; int num4 = 0; int[] n3= {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; int[] n4= {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; for (int i = 1; i < 100; i++) { num3= (int) Math.pow(i, 3); num4= (int) Math.pow(i, 4); if (num3 >= 1000 &&num4>= 100000) { n3=split(num3); n4=split(num4); if(judge(n3,n4)==1) { System.out.printf("满足条件的年龄是%d。三次方为%d,四次方为%d",i,num3,num4); return ; } } } } public static int[] split(int num) { int[] res = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; int i=0; while(num>0) { res[i]=num % 10; num = num / 10; i++; } return res; } public static int judge(int[] n3,int[] n4) { Set set=new HashSet<Integer>(); for(int i=0;i<10;i++) { set.add(n3[i]); set.add(n4[i]); } if(set.size()!=11) return 0; else return 1; } }
这篇关于找规定的年龄的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南