Генерация случайных числе. Прерывание генерации - C#

Узнай цену своей работы

Формулировка задачи:

По условию вводится однозначное натуральное M, Можно ли представить число в виде суммы квадратов двух других однозначных натуральных. Генерацию чисел с подбором записал, но проблема в том, что, например, если мы введем число, которое нельзя представить в виде суммы квадратов двух других - будет идти бесконечное кол-во циклов.

Как прервать цикл, когда будут проверены все комбинации чисел ?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication34
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Введите натуральное однозначное число M");
            int M;
            int A = 0 ;
            int B = 0;
            string s = new string(' ',1);
 
            do
            {
                M = Convert.ToInt32(Console.ReadLine());
                if (M < 0 || M > 10)
 
                    Console.WriteLine("Попробуйте ще раз, введите М [1;10)");
 
            }
            while (M < 0 || M >10);
            do
            {
                Random r = new Random();
 
                A = r.Next(1,10);
                B = r.Next(1,10);
                Console.Write(A);
                Console.Write(s);
                Console.Write(B);
                Console.WriteLine();
 
                if (M != Math.Pow(A, 2) + Math.Pow(B, 2))
                {
                    Console.WriteLine("Таких значений нет");
 
                }
                else
                {
                    Console.WriteLine("Ваше число можно представить в виде суммы квадратов >>{0}", M);
                    Console.WriteLine("Ваши числа {0}^2 + {1}^2 ", A, B);
                    
                    break;

                }

            }
            while (A != 0 && B != 0);
 
            Console.ReadKey();

        }
    }
}

Решение задачи: «Генерация случайных числе. Прерывание генерации»

textual
Листинг программы
        static void Main(string[] args)
        {
            Console.WriteLine("Введите натуральное однозначное число M");
            int M;
            int A = 0;
            int B = 0;
            string s = new string(' ',1);
 
            do
            {
                M = Convert.ToInt32(Console.ReadLine());
                if (M < 0 || M > 10)
 
                    Console.WriteLine("Попробуйте ще раз, введите М [1;10)");
 
            } while (M < 0 || M > 10);
 
            double sqrt = Math.Sqrt(M);
            bool found = false;
            for (int i = 1; i < sqrt; i++)
            {
                if (found) break;
                for (int j = 1; j < sqrt; j++)
                {
                    if ((i * i + j * j) == M)
                    {
                        A = i;
                        B = j;
                        found = true;
                        break;
                    }
                }
            }
            if (found)
            {
                Console.WriteLine("Ваше число можно представить в виде суммы квадратов >>{0}", M);
                Console.WriteLine("Ваши числа {0}^2 + {1}^2 ", A, B);
            }
            else
            {
                Console.WriteLine("Таких значений нет");
            }
 
            Console.ReadLine();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы