java编程基础总结

需求:

输入数字判断是否为快乐数,快乐数的定义:输入正整数,所有位数的平方和相加进行循环,是否为1,为1则为快乐数,不为1则为false
如快乐数:19,1*1+9*9=82;8*8+2*2=68;6*6+8*8=100;1*1+0*0+0*0=1
1.输入数字
2.判断是否为快乐数
package test;

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
    static int max=Integer.MAX_VALUE;
    public static void main(String[] args) {
        //从键盘输入数字
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        //判断是不是快乐数
        boolean b = PanDuan(s);
        System.out.println(b);

    }
   public static boolean PanDuan( String isHappy){
       char[] chars = isHappy.toCharArray();
       int num=Integer.parseInt(isHappy);
        if (num==1){
            return  true;
        }
        else if(num<1){
            return  false;
        }
        else {
            int result=0;
            int count=0;
            while (result!=1){
                //进行计算
                int temp=0;
                for (int i = 0; i < chars.length; i++) {
                    StringBuffer stringBuffer = new StringBuffer();
                    StringBuffer stringBuffer1 = stringBuffer.append(chars[i]);
                    temp = Integer.parseInt(stringBuffer1.toString()) * Integer.parseInt(stringBuffer1.toString())+temp ;
                    count++;
                    if (count>1000) {
                        return false;
                    }
                }
                String s1 = String.valueOf(temp);
                chars=s1.toCharArray();
                result=temp;
            }
            return  true;

        }
    }
}
  • 从键盘输入用Scanner ;
  • String转char []用方法toCharArray();
  • String转int用Integer.parseInt();
  • int转String用String.valueOf();
  • 为什么用StingBuffer? 需要将char数字中的元素提取出来先转换为Sting,再转换为int,便于参与计算。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值