2

次のJavaコードをご覧ください

import java.util.Scanner;

public class Main
{
    static int mul=1;
    static String  convert;
    static  char[] convertChar ;
    static StringBuffer buffer = new StringBuffer("");

    public static void main(String[]args)
    {

        Scanner scan = new Scanner(System.in);

        int number=0;
        int loopValue = scan.nextInt();
       //System.out.println("print: "+loopValue);

        for(int i=0;i<loopValue;i++)
        {
            number = scan.nextInt();
           // System.out.println("print: "+number);

            for(int a=1;a<=number/2;a++)
            {
                if(number%a==0)
                {
                    //System.out.println(a);
                    mul = mul*a;
                    //System.out.println(mul);
                }
            }

           convert  = String.valueOf(mul);
           convertChar = convert.toCharArray();

           if(convertChar.length>4)
            {
               /*System.out.print(convertChar[convertChar.length-4]);
               System.out.print(convertChar[convertChar.length-3]);
               System.out.print(convertChar[convertChar.length-2]);
               System.out.print(convertChar[convertChar.length-1]);
               System.out.println();*/

               buffer.append(convertChar[convertChar.length-4]);
               buffer.append(convertChar[convertChar.length-3]);
               buffer.append(convertChar[convertChar.length-2]);
               buffer.append(convertChar[convertChar.length-1]);

                System.out.println(buffer);

            }
            else
            {
                System.out.println(mul);
            }

            //System.out.println(mul);
            mul = 1;
        }

    }
}

このコードは、指定された数の正の約数の積を計算するために作成されています。入力する入力の数がわからないため、ここではスキャナーを使用しました。だから私は次のようなことはできません

int a, b;

cin >> a >> b

C++で。すべての入力は、テストエンジンによって、次のように1つのシングルに挿入されます。

6 2 4 7 8 90 3456

C ++を使用してJava「スキャナー」を実装するにはどうすればよいですか?そのためのヘッダーファイルはありますか?助けてください!

4

2 に答える 2

3

Scanner標準入力ストリームから一度に 1 つの整数を読み取るために使用しているようです。これは、抽出演算子 を使用して簡単に実行できoperator>>ます。

次のコードを置き換えます。

    Scanner scan = new Scanner(System.in);

    int number=0;
    int loopValue = scan.nextInt();
   //System.out.println("print: "+loopValue);

    for(int i=0;i<loopValue;i++)
    {
        number = scan.nextInt();
       // System.out.println("print: "+number);

これとともに:

    int number=0;
    int loopvalue=0;
    std::cin >> loopvalue;

    for(int i = 0; i < loopValue; i++)
    {
        std::cin >> number;

操作が成功したことを確認するためstd::cinに、操作の後にの値を確認する必要があります。>>

参照:

于 2013-02-11T22:07:09.027 に答える