Loading...
zh.yordanova avatar zh.yordanova 8 Точки

06. Barcode Generator

Здравейте колеги. Имам нужда от помощ за зачада от предварителния изпит преди две седмици. Не съм сигурна дали все още е доспътна в Jujge или поне аз не мога да я намеря. Много ще съм благодарна ако някой сподели стар код ако има или поне ми даде насоки какво пропускам защото цикъла ми не се завърта правилно.

Условие:

Задача 6. Баркод Генератор

Техниката в магазин за коледни украси се разваля. Артикулите, които съдържат четни числа в своя баркод не могат да бъдат маркирани от касиерите. Вашата задача е, да напишете програма, която генерира всички баркодове, които НЕ съдържат четни цифри в себе си.

Вход:

·Две четирицифрени числа, които показват обхвата на баркодовете, които трябва да промените.

  • Първи ред – четирицифрено число – началото на обхвата. Цяло число в интервала [1000…9999]
  • Втори ред – четирицифрено число – края на обхвата. Цяло число в интервала [1000…9999]

Изход:

На конзолата трябва да се отпечатат всички "баркодове", които НЕ съдържат четна цифра в себе си, разделени с интервал.

Примерен вход и изход:

Вход

Изход

Обяснения

2345

6789

3355 3357 3359 3375 3377 3379 3555 3557 3559 3575 3577 3579 3755 3757 3759 3775 3777 3779 5355 5357 5359 5375 5377 5379 5555 5557 5559 5575 5577 5579 5755 5757 5759 5775 5777 5779

Взимаме първата, втората, третата и четвъртата цифра от двете четирицифрени числа, съответно от първото като начална и от второто като крайна стойност. Проверяваме в интервалите между всяка от цифрите на първото четирицифрено число и всяка от цифрите на второто дали съществува четна цифра и ако съществува я игнорираме в резултата.

3256

6579

3357 3359 3377 3379 3557 3559 3577 3579 5357 5359 5377 5379 5557 5559 5577 5579

1365

5877

1375 1377 1575 1577 1775 1777 3375 3377 3575 3577 3775 3777 5375 5377 5575 5577 5775 5777

 

Моето решение: https://pastebin.com/9ErcQU9N

Тагове:
0
Programming Basics
svephoto avatar svephoto 1191 Точки

Здравей, zh.yordanova,

 

Мисля че имаш една малка грешка на 15-ти ред:

 

for num_2 in range(second_end, second_end + 1):

 

Видя ли я? smiley Имаш два пъти second_end вместо second_start и second_end. С тази промяна генерира правилно и трите изхода от условието, но не мога да намеря задачата в Judge за да тествам решението.

0
zh.yordanova avatar zh.yordanova 8 Точки

Много ви благодаря. Понякога толкова се оплитам в задачата, че не мога да проумея, какви елементарни грешки допускам и то, от невнимание и паника. Нямаше да видя грешката си. Ще внимавам повече и ще проверявам какво пиша в кодовете си по старателно. Благодаря svephoto за отделеното време.

1
svephoto avatar svephoto 1191 Точки

Моля, zh.yordanova,  радвам се да помогна. Иначе грешките не са проблем - всички ги правим постоянно. А от паника няма нужда, такива грешки се поправят. Понякога колкото и старателно да гледаме и проверяваме, не можем и не можем да видим къде е проблемът. Затова се обръщаме към колеги за помощ, когато не успяваме сами - други очи често могат да видят това, което нашите не успяват. Успех и занапред!

0
LPanova avatar LPanova 1 Точки

Благодаря много! Бях се омотала с някакви 8-9 цикъла.. А то имало и по-лесен начин.

Въпреки, че аз съм на Java, кода ми помогна и ме спаси. 

0
IvanGkurrk avatar IvanGkurrk 1 Точки

Здравейте! 

Имам въпрос по конкретната задача:

В условието се казва да се принтират всички числа (м/у двата въведени интервала), които не съдържат четни цифри в себе си. В моя отговор такива числа са и 3111, 3113, 3115, 3117, 3119, 3131..... докато примерният изход започва от 3355 пропускайки много числа преди това.

https://pastebin.com/4NJMN3ne

Може ли някой да ми обясни защо е това и кое от условието не разбирам?

Поздрави

0
astankin avatar astankin 5 Точки

using System;

namespace Задача_6._Баркод_Генератор
{
    class Program
    {
        static void Main(string[] args)
        {
            string startOfRange = Console.ReadLine();
            string endOfRange = Console.ReadLine();
            int firstStart = int.Parse(startOfRange[0].ToString());
            int secondStart = int.Parse(startOfRange[1].ToString());
            int thirdStart = int.Parse(startOfRange[2].ToString());
            int fourthStart = int.Parse(startOfRange[3].ToString());
            int firstEnd = int.Parse(endOfRange[0].ToString());
            int secondEnd = int.Parse(endOfRange[1].ToString());
            int thirdEnd = int.Parse(endOfRange[2].ToString());
            int fourthEnd = int.Parse(endOfRange[3].ToString());
            for (int i = firstStart; i <= firstEnd; i++)
            {
                if (i % 2 != 0)
                {
                    for (int j = secondStart; j <= secondEnd; j++)
                    {
                        if (j % 2 != 0)
                        {
                            for (int k = thirdStart; k <= thirdEnd; k++)
                            {
                                if (k % 2 != 0)
                                {
                                    for (int l = fourthStart; l <= fourthEnd; l++)
                                    {
                                        if (l % 2 != 0)
                                        {
                                            Console.Write($"{i}{j}{k}{l} ");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 

0
Yankof avatar Yankof 1 Точки
import java.util.Scanner;

public class BarcodeGenerator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int firstNum = Integer.parseInt(scanner.nextLine());
        int secondNum = Integer.parseInt(scanner.nextLine());

        for (int i = firstNum; i <= secondNum; i++) {
            String currentNumber = String.valueOf(i);
            boolean hasOnlyOddDigits = true;

            for (int j = 0; j < currentNumber.length(); j++) {
                int currentDigit = Integer.parseInt("" + currentNumber.charAt(j));

                if (currentDigit % 2 == 0) {
                    hasOnlyOddDigits = false;
                    break;
                }
            }

            if (hasOnlyOddDigits) {
                System.out.print(i + " ");
            }
        }
    }
}
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.