tek haneli = 3
7 + 7 = 21 + 7, 2+ 1 = 3;
Yukarıdaki koddan benim girişim 333 ise 9'u cevap olarak alıyorum ama toplamı iki basamak olduğunda (777 = 21) boş alıyorum!toplamıdır çıkış olmalıdır 777 <br> Yeni başlayan bir Java ve zor sorunu</p> <p>giriş çözmeye çalışıyorum sayısı
public static void main(String[] args)
{
int y=333;//if y is 777 i am getting blank
int sum=0;
String s;
char []ch;
do
{
s=String.valueOf(y);
ch=s.toCharArray();
if(ch.length>1)
{
for(int i=0;i<ch.length;i++)
{
sum+=Character.getNumericValue(ch[i]);
}
}
else
{
System.out.println(sum);
}
y=sum;
}while(ch.length>1);
}
Bu yinelemeli çözelti daha iyi olur, bu durumda biri. Ayrıca bu, bir dizgeye hesaplama açısından pahalı dönüştürme olmadan çözülebilir. İpucu; modulo ve integer bölümünü 10 ile kullanın. – Bathsheba
@batsheba aslında, modulo 9 daha iyi çalışır (ondalık için; modulo 1'i kullanmak istediğiniz ikili için) –