zoukankan      html  css  js  c++  java
  • 3.平方怪圈

    声明

    可能本文章会有错误,希望各位读者看到后,记得回复留言,提醒我,以免误人子弟。本人菜鸡,还望各位大佬手下留情。

    题目

    如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
    对新产生的正整数再做同样的处理。

    如此一来,你会发现,不管开始取的是什么数字,
    最终如果不是落入1,就是落入同一个循环圈。
    请写出这个循环圈中最大的那个数字。

    请填写该最大数字。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


    分析

    略,这里由于本人对集合类不是特别熟悉,只能是想起来哪个用哪个,相对数组来说比较方便些,如果对集合类不是特别熟悉的话,可以用数组代替,比赛的时候当然是以最快的方式求出答案为好,但是学习的时候博主还是认为应该多学习怎么写是最优的。

    博主这里用HashSet是因其去重的特性,比较方便些。


    代码

    import java.util.ArrayList;
    import java.util.HashSet;
    
    public class c {
    
    	public static void main(String[] args) {
    		int a = 1234;	//初始数字
    		int b;	//每次取出的数字
    		int count = 0; //每次的平方和
    		int num = 100; //运算次数
    		ArrayList<Integer> list = new ArrayList<Integer>(); //将b放入此list
    		HashSet<Integer> set = new HashSet<Integer>(); //将count放入此set
    		
    		//运算次数
    		for(int i=0;i<num;i++) {
    			//取出的每一个位数的数字放入list
    			while(a>0) {
    				b = a % 10;
    				list.add(b);
    				a = a / 10;
    			}
    			
    			a = 0;
    			
    			//运算每次的平方和,并添加至set
    			for(int c : list) {
    				a = a + c*c;
    			}
    			list.clear();
    			set.add(a);
    		}
    		System.out.println(set);
    	}
    }
    
  • 相关阅读:
    EncryptionAndDecryptionC# 加密 解密
    EncryptFac 加解密小工具
    Aes加密/解密示例项目
    DES加密解密工具
    DESC加密解密算法
    加解密合集
    Zabbix系列之一——zabbix3.4部署
    Linux下ntpdate时间同步
    SVN服务器搭建实录
    Failed to get D-Bus connection: Operation not permitted解决
  • 原文地址:https://www.cnblogs.com/drinkoo/p/8719559.html
Copyright © 2011-2022 走看看