ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

找规定的年龄

2022-02-28 00:02:12  阅读:186  来源: 互联网

标签:num4 set num3 int num 规定 年龄 n3


规则
某人的年龄的三次方是一个四位数,四次方是一个六位数。这个四位数和六位数共十个数字,分别是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;
    }
}

标签:num4,set,num3,int,num,规定,年龄,n3
来源: https://blog.csdn.net/alike_meng/article/details/123172908

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有