蓝桥杯(java)个人赛真题:奇妙的数字

小明发现一神奇数字,其平方与立方拼凑成0至9所有数字各一次,本篇揭示这一数学奇观背后的算法解决方案。

奇妙的数字

			奇妙的数字
			
			小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
			你能猜出这个数字是多少吗?
			
			请填写该数字,不要填写任何多余的内容。

思路:
题意我说一下:一个数字的平方和立方加起来刚好把0~9的数字用了一遍,意思是刚好用完
这题想要快速的做出就需要一定的基础了,这题涉及了一个Set集合,这个集合有一个特点就是只能存储不同的数据,首先我们定义两个变量来保存一个数的平方和立方分别取出每位数字添加到同一Set集合中然后判断Set的长度是否为10,这里就巧妙利用了Set属性值不能重复的特点,保证Set中如果存在10个值的话必然是0~9。

package Lqb;

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class Text22 {

	public static void main(String[] args) {
		Set<Integer> set=new HashSet<Integer>();
		int Num=0,Quadratic=0, Cube=0, n=0;
		while(n!=10){
			Num++;
			set=new HashSet<>();
			Quadratic=Num*Num;
			Cube=Num*Num*Num;
			while(Quadratic>0){
				set.add(Quadratic%10);
				Quadratic/=10;
			}
			while(Cube>0){
				set.add(Cube%10);
				Cube/=10;
			}
			n=set.size();
		}
		System.out.println("这个数字是: "+Num);
		}


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值