0 / 0 / 1
Регистрация: 26.09.2013
Сообщений: 11
1

В минимальные сроки вывести число состоящее из n одинаковых цифр.

25.01.2014, 00:09. Показов 827. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Тут такая задача: в минимальные сроки вывести число состоящее из n одинаковых цифр.
Все было бы просто, если бы n не принадлежало от 0 до 1018.

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2014, 00:09
Ответы с готовыми решениями:

Получить на экране число, состоящее из одинаковых цифр
Помогите решить пожалуйста В калькулятор вводится натуральное число K и нажимается клавиша "+"....

Выясните, есть ли в этой последовательности хотя бы одно двухзначное число, состоящее из одинаковых цифр
Дано n целых чисел. Выясните, есть ли в этой последовательности хотя бы одно двухзначное число,...

Дана строка символов, состоящая из букв и цифр. Вывести на экран число, состоящее их цифр данной строки
Дана строка символов, состоящая из букв и цифр. Вывести на экран число, состоящее их цифр данной...

Вывести число, состоящее из сумм каждых рядом стоящих цифр
Задача : написать программу в Visual Baisic. Пользователь вводит число. нужно сделать так что бы...

7
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
25.01.2014, 00:17 2
Записать число как строку.
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
25.01.2014, 01:03 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cmath>
 
int main()
{
    size_t N;
    do {
        std::cout << "N: ";
        std::cin >> N;
    } while ((N < 0) || (N > 18));
 
    size_t digit;
    do {
        std::cout << "Digit: ";
        std::cin >> digit;
    } while ((digit <= 0) || (digit >= 10));
 
    long long resultNumber = 0;
    long long currentPow = pow(10., 0);
    while (currentPow < pow(10, N)) {
        resultNumber = resultNumber * 10 + digit;
        currentPow *= 10;
    }
    std::cout << resultNumber << std::endl;
 
    std::system("pause");
    return 0;
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.01.2014, 10:57 4
Ev[G]eN, нет гарантии, что long long будет 64 бита. В таких случаях следует опираться на типы из <cstdint>. Но со строкой всё равно проще. Если нужно только вывести.
0
Модератор
Эксперт С++
13504 / 10755 / 6410
Регистрация: 18.12.2011
Сообщений: 28,708
25.01.2014, 11:12 5
А чему не удовлетворяет такой способ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int main()
{
     int N,digit;
     std::cout << "N: ";
     std::cin >> N;
    do {
        std::cout << "Digit: ";
        std::cin >> digit;
    } while ((digit < 0) || (digit >= 10));
    for(int i=1;i<=N;i++)
       cout<<digit;
    cout<<endl;   
    std::system("pause");
    return 0;
}
0
14 / 12 / 12
Регистрация: 23.12.2013
Сообщений: 84
25.01.2014, 11:26 6
Цитата Сообщение от zss Посмотреть сообщение
int N
только тут long long N; но вопрос тот же.
мб потому что каждый раз происходит вызов функции и это затратно

Добавлено через 2 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
Ev[G]eN, нет гарантии, что long long будет 64 бита.
в смысле size_t?? этот тип размера указателя
0
Модератор
Эксперт С++
13504 / 10755 / 6410
Регистрация: 18.12.2011
Сообщений: 28,708
25.01.2014, 13:23 7
Цитата Сообщение от school_bot Посмотреть сообщение
только тут long long N
N- это количество выводимых цифр.
Если оно больше 100, то число не поместится в одну строку на экране,
какой смысл выводить длиннее?
А в свете этого, что затратного в том, что вызываем cout 100 раз?
Можно, кстати, запихать их все в одну текстовую строку, тогда cout будет вызвано один раз.
0
14 / 12 / 12
Регистрация: 23.12.2013
Сообщений: 84
25.01.2014, 13:58 8
Цитата Сообщение от zss Посмотреть сообщение
Если оно больше 100, то число не поместится в одну строку на экране,
какой смысл выводить длиннее?
даже если это и правда, в задании надо вывести одну строку символов.
Цитата Сообщение от zss Посмотреть сообщение
Можно, кстати, запихать их все в одну текстовую строку, тогда cout будет вызвано один раз.
вот да.
C++
1
2
3
4
while (currentPow < pow(10, N)) {
        resultNumber = resultNumber * 10 + digit;
        currentPow *= 10;
    }
не знаю, зачем тогда этот код
0
25.01.2014, 13:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2014, 13:58
Помогаю со студенческими работами здесь

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

Дано целое число N — количество цифр и задана каждая из этих цифр. Сформировать число, состоящее из этих цифр, начиная с разряда единиц.
Дано целое число N — количество цифр и задана каждая из этих цифр. Сформировать число, состоящее из...

Найти и вывести на экран число, состоящее из тех же цифр, что и первое, только в обратном порядке
Помогите Решить. либо дайте ссылку на такую задачу. не могу найти. Дано натуральное число N...

Вывести все числа, для которых число, состоящее из первых двух его цифр, равно последней его цифре
Реализовать данные задания используя, цикл с параметрами. Причем вывести числа по возрастанию — 1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru