0

1234誰かがコンソールに4 桁の数字を入力したとします。1 2 3 4除算とモジュロ演算子のみを使用して、この数値をどのように分離できますか?

public static void MathProblem()
        {
            Console.WriteLine("Type a four digit number:");
            //Ex input: 1234

            string inputNumber = Console.ReadLine();

            // I'm guessing you first need to parse the 
            // string as an int in some way?
            // And then assign it to some variable

            // Now, for seperating the digits to be: 1 2 3 4, 
            // you can (and must) use both division (/), and the remainder (%).
            // The first one will be simple, just dividing value with 1000, but
            // how about the others? (Remember, % also need to be used at least
            // once)

                Console.Write("{0},{1},{2},{3}", value/1000, ?, ?, ?;
            }

任意の 4 桁の入力でこれを可能にするためのガイドラインはありますか?

4

4 に答える 4

4

これは宿題のように思えるので、コードを示すのではなく、いくつかの手順でメソッドを簡単に説明します。入力を整数として解析した後、

  1. 10 を法とする数値では、最後の桁を取得できます。
  2. 数値を 10 で割る (整数除算) と、最後の桁が削除されます。
  3. 数値が 0 より大きい間、繰り返します。
于 2013-09-05T02:34:46.507 に答える
3
int num = int.Parse(inputNumber);
Console.Write(string.Format("{0},{1},{2},{3}", (num/1000) % 100, (num/100) % 10, (num/10) % 10, num % 10));

また

List<int> listOfInts = new List<int>();
while(num > 0)
{
    listOfInts.Add(num % 10);
    num = num / 10;
}
Console.Write("{0},{1},{2},{3}", listOfInts[3], listOfInts[2], listOfInts[1], listOfInts[0]);
于 2013-09-05T02:36:56.643 に答える
2

除算やモジュロ演算子でこれを行う必要はありません。LINQ を使用します。以下のように、LINQ を使用して整数配列を取得できます。

string inputNumber= "1234"
var intList = inputNumber.Select(digit => int.Parse(digit.ToString()));

次に、次のように好きなように使用できます。

Console.Write("{0},{1},{2},{3}", intList[0]/1000, intList[1], intList[2], intList[3]);

または、除算とモジュロ演算子を使用して、単に希望どおりにします。

public int[] ParseIntString(int number)
{
    List<int> digits= new List<int>();
    while(number> 0)
    {
        digits.Add(number% 10);
        number= number/ 10;
    }
    digits.Reverse();
    return digits.ToArray();
}
于 2013-09-05T02:32:32.057 に答える