Loading...
sharli avatar sharli 14 Точки

Задача от олимпиадата по информатика за 5-ти клас

Вход:

На първия ред се записват две цели числа   1<= n<=18 и     1<=k<=10000000.

Изход:На първия ред се извежда най-малкото n-цифрено число което се дели на к.

Сигурно има и друго решение освен с използване на switch,но не мога да сетя.

Ще съм благодарен за други решения.

switch ( input ) {
  case 2 :  
for(int i=10;i<99;i++)
if(i%k==0)
cout<<i;
return 1; 
    break;
  case 18 : 
    break;
  default :
}

Пример:

Вход 2 3    Вход:4 10

Изход:12    Изход:1000

 

Тагове:
0
Programming Basics 20/02/2018 21:54:35
dimiOrange avatar dimiOrange 63 Точки
Best Answer

Здравей,

На мен ми хрумна това решение.

Поздрави

 

import java.util.Scanner;

public class TestForumQuestionOlympiadFifthGrade {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int n = Integer.parseInt(console.nextLine());
        int k = Integer.parseInt(console.nextLine());

        int smallestNDigitsNumber = 1;
        for (int i = 1; i < n; i++) {
            smallestNDigitsNumber *= 10;
        }

        int largestNDigitsNumber = 10;
        for (int i = 1; i < n; i++) {
            largestNDigitsNumber *= 10;
        }
        largestNDigitsNumber -= 1;

        for (int i = smallestNDigitsNumber; i <= largestNDigitsNumber; i++) {
            if (i % k == 0) {
                System.out.println(i);
                break;
            }
        }
    }
}
0
sharli avatar sharli 14 Точки

Благодаря за решението колега.Не се сетих n-цифрените числа да ги зглобявам поотделно.

След това всичко е лесно. 

0
inser7 avatar inser7 221 Точки

Здравей колега,

ето едно решение на C# и от мен:

using System;

public class StartUp
{
    static void Main()
    {
        string[] input = Console.ReadLine().Split();
        int numberOfDigits = int.Parse(input[0]);
        long divider = long.Parse(input[1]);
        long maxNumberOfSequance = (long) Math.Pow(10, numberOfDigits);
        for (long i = 0; i <= maxNumberOfSequance; i += divider)
        {
            long currentNumber = i;
            if (currentNumber % divider == 0 && currentNumber.ToString().Length == numberOfDigits)
            {
                Console.WriteLine(i);
                break;
            }
        }
    }
}


Поздрави Георги!

0
21/02/2018 10:06:10
sharli avatar sharli 14 Точки

Благодаря за решението колега.Децата още не са научили масиви,а също и парсване  string/int.

dimiOringe помогна.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.