A01数字位拆解

发布时间 2023-03-22 21:12:57作者: 缕一缕清风

import java.util.Scanner;

public class A01数字位拆解 {
//编程实线一个抽奖小程序,输入四位数字的卡号,输出每位上的数字并求和,
//四位卡号所有数字之和能被8整除,则提示中奖,反之没中奖。
//编程思想,例如1487,试图将其变为{1,4,8,7},有点是能够处理位数比较多的数字,除法取模来处理数位比较多的时候,很麻烦
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//新建一个输入器对象sc,将控制台输入流System.in送给它
System.out.print("请输入四位数字:");
int a = sc.nextInt();//利用输入器对象nextInt()函数从控制台获取一个整数
sc.close();//关闭扫描器,释放资源(避免浪费资源,程序卡顿)
String str = String.valueOf(a);//将整数转换为字符串"1487"
char[] cArr = str.toCharArray();//将字符串转换字符数组{'1','4','8','7'}
//此处有一个编程经验技巧: '4'-'0'=4;
int[] b=new int[cArr.length]; //定义一个整数数组
for(int i=0;i<b.length;i++){ //将字符数组转换为整数数组
b[i]=cArr[i]-'0';
}
int sum=0; //累加变量
for (int i = 0; i < b.length; i++) {
sum+=b[i];
}
if(sum%8==0){
System.out.println("恭喜你,你的卡号中奖了");
}else {
System.out.println("很遗憾,这次没能中奖");
}
}
}