С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

По заданым N и K найти какая цифра будет стоять N-ой строке на K-ом месте и вывести её - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Условия добавления в дерево http://www.cyberforum.ru/cpp-beginners/thread591789.html
Привет, решаю задачку, не могу кое с чем разобраться. у меня задача добавить в дерево число, как концевой узел. если число меньше значения корня дерева, то добавить в левое дерево(это ОК), если...
C++ Массивы: составить вдвое меньший массив,элементами которого являются Дан массив a из n элементов. n - четное. Составить вдвое меньший массив,элементами которого являются : b1=a1+an; b2=a2+an-1 и т.д. http://www.cyberforum.ru/cpp-beginners/thread591785.html
C++ Реализация графа
Может кто-нибудь привести пример реализации графа-сети?
C++ программа на c++
Доброго времени суток, у меня возникла проблема с программой, помогите пожалуйста с исправлением ошибок. #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #include...
C++ Функция в массиве http://www.cyberforum.ru/cpp-beginners/thread591777.html
В упорядоченном по возрастанию массиве подсчитать количество элементов, расположенных до элемента со значением К. Нахождение индекса элемента со значением К реализовать в виде функции. Помогите...
C++ Eror: существует более одного экземпляра перегруженная функция "log" соответствующего списку аргументов #include "stdafx.h" #include <iostream> #include <math.h>; using namespace std; int _tmain(int argc, _TCHAR* argv) { double a, b; cout << "Enter a ->"; cin >> a; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
31.05.2012, 08:34
Jeron95, проверяйте:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
int main () 
{
    int n, i, t;
    long long a[1000], k;
    cin>>n>>k;    
    a[1]=1; i=2;
    while(i<10){a[i]=a[i-1]*2+1; i++;}
    while(i<100){a[i]=a[i-1]*2+2; i++;}
    while(i<1000){a[i]=a[i-1]*2+3; i++; if(a[i]>1000000000000000) break;}
 
    while(true)
    {
        if(n<1)
        {
            n=-1;
            break;
        }
        if(n==100000) t=6;
        if(n<100000 && n>=10000) t=5;   
        if(n<10000 && n>=1000) t=4;
        if(n<1000 && n>=100) t=3;
        if(n<100 && n>=10) t=2;
        if(n<10) t=1;
        if(k<=t)
        {
            while(k<t)
            {
                n/=10;
                t--;
            }
            n%=10;
            break;
        }
        if(n<=i)
        {
            if((a[n]-t)/2+t<k)
                k-=(a[n]-t)/2+t;
            else
                k-=t;
            n--;
        }
        else
        {
            k-=t; n--;
        }
    }
    cout<<n<<endl;
    return 0;
}
и на будущее: не стесняйтесь, сразу пишите ограничения на N и K и примеры тестов (если они есть).
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.