class Test {
public static void main
(String[] args
) {
int num = 12345;
Keta k = new Keta(num);
for (int i = 1; i <= 5; i++) {
System.
out.
println(String.
format("%d桁目の値=%d", i, k.
ketaNum(i
))); }
System.
out.
println(String.
format("各位の数の合計=%d", k.
sumKeta())); }
static class Keta {
private int num;
public Keta(int num) {
this.num = num;
}
int ketaNum(int n) {
if (n <= 0) {
return 0;
}
int syo
= num
/ ((int) Math.
pow(10, n
- 1)); if (syo == 0) {
return 0;
}
return syo % 10;
}
int keta() {
int i = 1;
while (true) {
if (ketaNum(i) == 0) {
break;
}
i++;
}
return i - 1;
}
int sumKeta() {
return sumKeta(keta());
}
int sumKeta(int n) {
int keta = ketaNum(n);
if (keta == 0) {
return 0;
}
return keta + sumKeta(n - 1);
}
}
}
Y2xhc3MgVGVzdCB7CgogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCiAgICBpbnQgbnVtID0gMTIzNDU7CgogICAgS2V0YSBrID0gbmV3IEtldGEobnVtKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDU7IGkrKykgewogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLmZvcm1hdCgiJWTmoYHnm67jga7lgKQ9JWQiLCBpLCBrLmtldGFOdW0oaSkpKTsKICAgIH0KCiAgICBTeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLmZvcm1hdCgi5ZCE5L2N44Gu5pWw44Gu5ZCI6KiIPSVkIiwgay5zdW1LZXRhKCkpKTsKICB9CgogIHN0YXRpYyBjbGFzcyBLZXRhIHsKCiAgICBwcml2YXRlIGludCBudW07CgogICAgcHVibGljIEtldGEoaW50IG51bSkgewogICAgICB0aGlzLm51bSA9IG51bTsKICAgIH0KCiAgICBpbnQga2V0YU51bShpbnQgbikgewogICAgICBpZiAobiA8PSAwKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KICAgICAgaW50IHN5byA9IG51bSAvICgoaW50KSBNYXRoLnBvdygxMCwgbiAtIDEpKTsKICAgICAgaWYgKHN5byA9PSAwKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN5byAlIDEwOwogICAgfQoKICAgIGludCBrZXRhKCkgewogICAgICBpbnQgaSA9IDE7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgaWYgKGtldGFOdW0oaSkgPT0gMCkgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGkrKzsKICAgICAgfQogICAgICByZXR1cm4gaSAtIDE7CiAgICB9CgogICAgaW50IHN1bUtldGEoKSB7CiAgICAgIHJldHVybiBzdW1LZXRhKGtldGEoKSk7CiAgICB9CgogICAgaW50IHN1bUtldGEoaW50IG4pIHsKICAgICAgaW50IGtldGEgPSBrZXRhTnVtKG4pOwogICAgICBpZiAoa2V0YSA9PSAwKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGtldGEgKyBzdW1LZXRhKG4gLSAxKTsKICAgIH0KICB9Cn0K