Сбор или произведение. 6 зад. от 25.06.2017г.
Бихте ли ми помогнали с решението на тази задача ,защото не мога да я завърша. Благодаря !
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
for (int a = 1; a <= 30; a++)
{
for (int b = 1; b <= 30; b++)
{
for (int c = 1; c <= 30; c++)
{
if (a < b && b < c && a + b + c == n)
{
Console.WriteLine($"{a} + {b} + {c} = {n}");
}
if (a > b && b > c && a * b * c == n)
{
Console.WriteLine($"{a} * {b} * {c} = {n}");
}
}
}
}
}
}
}
От конзолата се чете едно цяло число – контролно. Трябва да се отпечатат в определен формат всички тройки числа (a, b и c) в интервала от 1 до 30 включително, чиито сбор или произведение е равен на контролното число. Като трябва да бъдат спазени следните условия:
В случай, че НЕ са намерени такива числа трябва да отпечатаме No.
Вход
От конзолата се четe 1 цяло число: N – цяло число в интервала [1 … 30000];
Изход
Отпечатването на конзолата зависи от резултата:
Здрасти, изпращам ти решение, но е на java, мисля, че не е проблем.
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
int flag = 0;
for (int i = 1; i <= 30; i++) {
for (int j = 1; j <= 30; j++) {
for (int k = 1; k <= 30; k++) {
if (i < j && j < k && i + j + k == n) {
System.out.printf("%d + %d + %d = %d", i, j, k, n);
System.out.println();
flag = 1;
}
if (i > j && j > k && i * j * k == n) {
//System.out.println();
System.out.printf("%d * %d * %d = %d", i, j, k, n);
System.out.println();
flag = 1;
}
}
}
}
if (flag == 0) {
System.out.println("No!");
}
}