質問編集履歴

4 自分の解答をのせた

hillclub

hillclub score 9

2018/10/14 19:45  投稿

switch文で入力された値が平方数かそうでないか、判別したい
switch文について、ある問題があるのですが解答例だと定数なので、
全ての平方数に対応したコードを作ってみたいのですが、その場合どのようになるでしょうか?
調べたらC#7のパターンマッチングやMath.Sqrtを使うような感じかと思うのですが、
今日一日やってもうまくビルドできなかったので、
何か教えてほしいです。できればコード例でよろしくお願いします。
#問題文
> switch 文を使って150以下の平方数(4=2×2、9=3×3、16=4×4というように、ある整数の二乗になっている数)
を判別するプログラムを作成せよ。
ユーザに整数値を1つ入力してもらい、 判別結果を出力するものとする。
ヒント: 要するに、ユーザからの入力が 1, 4, 9, 16, ・・・になっているかどうかを switch 文で判別します。
#####解答例
```c#
using System;
class Exercise
{
 static void Main()
 {
   Console.Write("整数を入力してください: ");
   int n = int.Parse(Console.ReadLine());
   switch (n)
   {
     case 1:
       Console.Write("{0} は平方数です。\n", n);
       break;
     case 2 * 2: goto case 1;
     case 3 * 3: goto case 1;
     case 4 * 4: goto case 1;
     case 5 * 5: goto case 1;
     case 6 * 6: goto case 1;
     case 7 * 7: goto case 1;
     case 8 * 8: goto case 1;
     case 9 * 9: goto case 1;
     case 10 * 10: goto case 1;
     case 11 * 11: goto case 1;
     case 12 * 12: goto case 1;
     default:
       Console.Write("{0} は平方数ではないか、150以上です\n", n);
       break;
   }
 }
}
```
自分の解答  
```c#  
       class Switch3  
       {  
           public static void Main()  
           {  
               int x = int.Parse(Console.ReadLine());  
                 
                 
                 
                 
               const int BLOCK1 = 1;  
               int i = BLOCK1;  
               //int y = (int)Math.Sqrt(x);  
               //case int n when n< 1: return 0;  
 
 
               switch (i)  
               {  
                   case BLOCK1 :  
                       Console.WriteLine("平方数ではありません");  
                       break;  
 
                   default:  
                       Console.WriteLine("平方数です");  
                       break;  
               }  
 
 
           }  
       }  
```  
 
[(ufcpp 問題3:平方根)](https://ufcpp.net/study/csharp/exercise.html#1220)
  • C#

    10695 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

3 問題文を引用とした

hillclub

hillclub score 9

2018/10/14 19:11  投稿

switch文で入力された値が平方数かそうでないか、判別したい
switch文について、ある問題があるのですが解答例だと定数なので、
全ての平方数に対応したコードを作ってみたいのですが、その場合どのようになるでしょうか?
調べたらC#7のパターンマッチングやMath.Sqrtを使うような感じかと思うのですが、
今日一日やってもうまくビルドできなかったので、
何か教えてほしいです。できればコード例でよろしくお願いします。
#問題文
switch 文を使って150以下の平方数(4=2×2、9=3×3、16=4×4というように、ある整数の二乗になっている数)を
判別するプログラムを作成せよ。
> switch 文を使って150以下の平方数(4=2×2、9=3×3、16=4×4というように、ある整数の二乗になっている数)
判別するプログラムを作成せよ。
ユーザに整数値を1つ入力してもらい、 判別結果を出力するものとする。
ヒント: 要するに、ユーザからの入力が 1, 4, 9, 16, ・・・になっているかどうかを switch 文で判別します。
#####解答例
```c#
using System;
class Exercise
{
 static void Main()
 {
   Console.Write("整数を入力してください: ");
   int n = int.Parse(Console.ReadLine());
   switch (n)
   {
     case 1:
       Console.Write("{0} は平方数です。\n", n);
       break;
     case 2 * 2: goto case 1;
     case 3 * 3: goto case 1;
     case 4 * 4: goto case 1;
     case 5 * 5: goto case 1;
     case 6 * 6: goto case 1;
     case 7 * 7: goto case 1;
     case 8 * 8: goto case 1;
     case 9 * 9: goto case 1;
     case 10 * 10: goto case 1;
     case 11 * 11: goto case 1;
     case 12 * 12: goto case 1;
     default:
       Console.Write("{0} は平方数ではないか、150以上です\n", n);
       break;
   }
 }
}
```
[(ufcpp 問題3:平方根)](https://ufcpp.net/study/csharp/exercise.html#1220)
  • C#

    10695 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

2 一部見やすいよう見出し挿入した

hillclub

hillclub score 9

2018/10/14 19:10  投稿

switch文で入力された値が平方数かそうでないか、判別したい
switch文について、ある問題があるのですが解答例だと定数なので、
全ての平方数に対応したコードを作ってみたいのですが、その場合どのようになるでしょうか?
調べたらC#7のパターンマッチングやMath.Sqrtを使うような感じかと思うのですが、
今日一日やってもうまくビルドできなかったので、
何か教えてほしいです。できればコード例でよろしくお願いします。
#問題文
switch 文を使って150以下の平方数(4=2×2、9=3×3、16=4×4というように、ある整数の二乗になっている数)を
判別するプログラムを作成せよ。
ユーザに整数値を1つ入力してもらい、 判別結果を出力するものとする。
ヒント: 要するに、ユーザからの入力が 1, 4, 9, 16, ・・・になっているかどうかを switch 文で判別します。
解答例
#####解答例
```c#
using System;
class Exercise
{
 static void Main()
 {
   Console.Write("整数を入力してください: ");
   int n = int.Parse(Console.ReadLine());
   switch (n)
   {
     case 1:
       Console.Write("{0} は平方数です。\n", n);
       break;
     case 2 * 2: goto case 1;
     case 3 * 3: goto case 1;
     case 4 * 4: goto case 1;
     case 5 * 5: goto case 1;
     case 6 * 6: goto case 1;
     case 7 * 7: goto case 1;
     case 8 * 8: goto case 1;
     case 9 * 9: goto case 1;
     case 10 * 10: goto case 1;
     case 11 * 11: goto case 1;
     case 12 * 12: goto case 1;
     default:
       Console.Write("{0} は平方数ではないか、150以上です\n", n);
       break;
   }
 }
}
```
[(ufcpp 問題3:平方根)](https://ufcpp.net/study/csharp/exercise.html#1220)
  • C#

    10695 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1 一部読みやすいよう改行を入れた

hillclub

hillclub score 9

2018/10/14 19:08  投稿

switch文で入力された値が平方数かそうでないか、判別したい
switch文について、ある問題があるのですが解答例だと定数なので、
全ての平方数に対応したコードを作ってみたいのですが、その場合どのようになるでしょうか?
調べたらC#7のパターンマッチングやMath.Sqrtを使うような感じかと思うのですが今日一日やってもうまくビルドできなかったので、
調べたらC#7のパターンマッチングやMath.Sqrtを使うような感じかと思うのですが、
今日一日やってもうまくビルドできなかったので、
何か教えてほしいです。できればコード例でよろしくお願いします。
#問題文
switch 文を使って150以下の平方数(4=2×2、9=3×3、16=4×4というように、ある整数の二乗になっている数)を
判別するプログラムを作成せよ。
ユーザに整数値を1つ入力してもらい、 判別結果を出力するものとする。
ヒント: 要するに、ユーザからの入力が 1, 4, 9, 16, ・・・になっているかどうかを switch 文で判別します。
解答例
```c#
using System;
class Exercise
{
 static void Main()
 {
   Console.Write("整数を入力してください: ");
   int n = int.Parse(Console.ReadLine());
   switch (n)
   {
     case 1:
       Console.Write("{0} は平方数です。\n", n);
       break;
     case 2 * 2: goto case 1;
     case 3 * 3: goto case 1;
     case 4 * 4: goto case 1;
     case 5 * 5: goto case 1;
     case 6 * 6: goto case 1;
     case 7 * 7: goto case 1;
     case 8 * 8: goto case 1;
     case 9 * 9: goto case 1;
     case 10 * 10: goto case 1;
     case 11 * 11: goto case 1;
     case 12 * 12: goto case 1;
     default:
       Console.Write("{0} は平方数ではないか、150以上です\n", n);
       break;
   }
 }
}
```
[(ufcpp 問題3:平方根)](https://ufcpp.net/study/csharp/exercise.html#1220)
  • C#

    10695 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る