2017-05-10 9 views
-3

整数を入力するようにユーザーに求め、数字の個々の数字と数字の合計の両方を出力するプログラムを作成します。例えば、プログラムは、3456の個々の桁を3 4 5 6、合計を18として出力し、8030の個々の桁を8 0 3 0として出力し、合計を11として出力し、2345526の個々の桁を2 3 4 5 5 2 6の和を27として、4000の個別桁を4 0 0 0として出力し、その合計を4として出力する。誰かが私が書いたこのコードで値を逆に印刷する考えはありますか?

さらに、コンピュータは、ユーザが入力しても常に正の方向に桁を加算する負の数です。たとえば、-2345の個々の数字を2 3 4 5と出力し、合計を14と出力します。

これは私が少し難しかった質問です。私がこれまでに学んだことから、逆順でしか印刷することはできません。ここに私のコードは次のとおりです。

import java.util.*; 
public class assignment2Q1ForLoop { 
    static Scanner console = new Scanner (System.in); 
    public static void main(String[] args) { 
     int usernum, remainder; 
     int counter, sum=0, N; 
     //Asaking the user to enter a limit so we can use a counter controlled loop 
     System.out.println("Please enter the number of digits of the integer"); 
     N = console.nextInt(); 
     System.out.println("Please enter your "+N+" digit number"); 
     usernum = console.nextInt(); 
     System.out.println("The individual numbers are:"); 
     for(counter=0; counter < N; counter++) { 
     if(usernum<0) 
     usernum=-usernum; 
     remainder = usernum%10 ; 
     System.out.print(remainder+" "); 
     sum = sum+remainder ; 
     usernum = usernum/10; 
     } 
     System.out.println(); 
     System.out.println("the sum of the individual digits is:"+sum); 
    } 
} 
+0

このサイトのユーザーは、宿題の回答を得ようとしているとは考えていません。 – AppWriter

+0

値を配列に集めることを検討してください。 – bradimus

答えて

0

あなたは配列にremainder変数を格納し、その後thisチュートリアルに示すように、第1に、最後のインデックスからループ内でそれらを印刷する必要があります。

0

あなたは、どちらの店舗配列内の数字と、それらを印刷することができ、あるいはあなたがそのような何かを試すことができます。

final Scanner console = new Scanner(System.in); 

System.out.println("Please enter your number"); 
final int un = console.nextInt(); 

long n = un > 0 ? un : -un; 
long d = 1; 
while (n > d) d *= 10; 

long s = 0; 
System.out.println("The individual numbers are:"); 
while (d > 1) { 
    d /= 10; 
    final long t = n/d; 
    s += t; 
    System.out.print(t + " "); 
    n %= d; 
} 
System.out.println(); 

System.out.println("the sum of the individual digits is:" + s); 
0

でしょうアイデア:文字列にint型に変換して(方法

GETCHARを書きますint型のインデックス):文字列

GETCHARと(2)3456から、実施例4のためにあなたを与えます。

はここJava - Convert integer to string

0

を参照してください、私はスタックを使用して、あなたの問題のためにコードを書きました。シンプルなコードが必要な場合は、私の解決策をコメントすることができます。もう1つは書きます。

Scanner c1 = new Scanner(System.in); 

    System.out.print("Enter the number: "); 

    int numb = c1.nextInt(); 

    numb = Math.abs(numb); 

    Stack<Integer> digits = new Stack<Integer>(); 

    while(numb>0){ 
     int n = numb%10; 
     digits.push(n); 

     numb = numb/10; 
    } 
    int sum = 0; 
    while(!digits.isEmpty()){ 
     int n = digits.pop(); 
     sum+=n; 
     System.out.print(n+" "); 
    } 
    System.out.print(sum); 
関連する問題