06. Unique PIN Codes
Здравейте,
Ще сподели ли някой решение на задачата "06. Unique PIN Codes" от изпита.
Благодаря
Поздрави
Здравейте,
Ще сподели ли някой решение на задачата "06. Unique PIN Codes" от изпита.
Благодаря
Поздрави
Здравей,
надявам се този код да ти свърши работа ..
max_n1 = int(input())
max_n2 = int(input())
max_n3 = int(input())
for num1 in range(2, max_n1 + 1, 2):
for num2 in range(2, max_n2 + 1):
for num3 in range(2, max_n3 + 1, 2):
if num2 == 2 or num2 == 3 or num2 == 5 or num2 == 7:
print(f"{num1} {num2} {num3}")
Поздрави :)
Може ли линк към условието?
Здравейте,
Аз също имам проблем със задачата. Моето решение е тук https://pastebin.com/rFq36fvB
На тестовете, които виждам всичко е ок, след това обаче в judge ми дава 60/100.
Моля някой да погледне кода и ако може да ме насочи къде греша.
По-долу копирам и условието на задачата:
Да се напише програма, която генерира трицифрени PIN кодове, като цифрите на всеки PIN код са в определен интервал. За да бъде валиден един PIN код той трябва да отговаря на следните условия:
Първата и третата цифра трябва да бъдат четни.
Втората цифра трябва да бъде просто число в диапазона [2...7].
От конзолата се четат 3 реда:
Горната граница на първото число - цяло число в диапазона [1...9]
Горната граница на второто число - цяло число в диапазона [1...9]
Горната граница на третото число - цяло число в диапазона [1...9]
Да се отпечатат на конзолата всички валидни трицифрени PIN кодове, чиито цифри отговарят на съответните интервали.
Вход |
Изход |
Обяснения |
3 5 5
|
2 2 2 2 2 4 2 3 2 2 3 4 2 5 2 2 5 4 |
Първото въведено число е 3, отговарящо за максималната стойност на първата цифра. Второто въведено число е 5, отговарящо за максималната стойност на втората цифра. Третото въведено число е 5, отговарящо за максималната стойността на третата цифра. Във всички трицифрени PIN кодове, които сме получили първата цифра ни е 2, защото това е единственото възможно четно число. При втората цифра важи друго правило. Там трябва да подберем всички възможни прости числа в диапазона от 2 до 7. В нашия случай тези числа са както следва 2, 2, 3, 3, 5, 5. При третата цифра важи правилото за четните числа и ако го спазваме, получаваме, че възможните числа са: 2, 4, 2, 4, 2, 4.
|
8 2 8 |
2 2 2 2 2 4 2 2 6 2 2 8 4 2 2 4 2 4 4 2 6 4 2 8 6 2 2 6 2 4 6 2 6 6 2 8 8 2 2 8 2 4 8 2 6 8 2 8 |
|
Тук има малка неточност в условието,а именно че втората и третата цифра по принцип може да бъде и 0.
Явно тук нулата не се счита за цифра.
Ето и един работещ код на C#:
using System;
namespace Unique_Pin_Codes
{
class Program
{
static void Main(string[] args)
{
int firstNumber = int.Parse(Console.ReadLine());
int secondNumber = int.Parse(Console.ReadLine());
int thirdNumber = int.Parse(Console.ReadLine());
int outputNumber;
for(int i=1;i<=firstNumber;i++)
{
for (int j = 1; j <=secondNumber; j++)
{
for (int k = 1; k <=thirdNumber; k++)
{
if(i%2==0)
if(k%2==0)
{
if((j==2)||(j==3)||(j==5)||(j==7))
{
outputNumber = 100 * i + 10 * j + k;
Console.WriteLine(outputNumber);
}
}
}
}
}
}
}
}
Благодаря!
същата задача за java?
Заповядай ..
import java.util.Scanner;
public class UniquePINCodes {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = Integer.parseInt(scanner.nextLine());
int b = Integer.parseInt(scanner.nextLine());
int c = Integer.parseInt(scanner.nextLine());
for (int num1 = 2; num1 <= a; num1 += 2) {
for (int num2 = 2; num2 <= b; num2++) {
for (int num3 = 2; num3 <= c; num3 += 2) {
if (num2 != 4 && num2 != 6) {
System.out.printf("%d %d %d%n", num1, num2, num3);
}
}
}
}
}
}