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