我的想法是这样的。
我有任何数字(十位数)
检查号码长度
如果长度为1则完成
如果长度不止一个(两个)我想做一个循环过程,直到数字的长度达到一个。 所以这就是逻辑
如果数字的长度超过一(2),我取数十的数值和一个数值。
然后我添加两个数字,
检查结果的长度,如果仍然是2重复程序
即数字为38,长度大于1。 Ten的值为3,One的值为8.我加上它们,3 + 8 = 11。
11长度仍然不止一个。 Ten的值为1,One的值为1,加上它们,1 + 1 = 2。
2长度是一个。循环结束。
这是我尝试的代码,但它失败了(无限循环)
hitung = 38
hitungtxt = Integer.toString(hitung);
jumkar2 = hitungtxt.length();
while (jumkar2 > 1) {
char hita = hitungtxt.charAt(0);
char hitb = hitungtxt.charAt(1);
int hitung1=(int)hita;
int hitung2=(int)hitb;
hitung=hitung1+hitung2;
hitungtxt = Integer.toString(hitung);
jumkar2 = hitungtxt.length();
}
答案 0 :(得分:1)
您的代码:
char hita = hitungtxt.charAt(0);
int hitung1=(int)hita;
这个号码将获得Ascii value
。如果您想解决此问题,请尝试:int hita = Integer.parseInt(String.valueOf(hitungtxt.charAt(0)));
所以,你的最终代码应该是:
int hitung = 38;
String hitungtxt = Integer.toString(hitung);
int jumkar2 = hitungtxt.length();
while (jumkar2 > 1) {
int hita = Integer.parseInt(String.valueOf(hitungtxt.charAt(0)));
int hitb = Integer.parseInt(String.valueOf(hitungtxt.charAt(1)));
hitung = hita + hitb;
hitungtxt = Integer.toString(hitung);
jumkar2 = hitungtxt.length();
}
System.out.println(hitungtxt);
希望它有所帮助!