Генерация случайных числе. Прерывание генерации - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д