Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 17:33   #1
sp.caster
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 60
По умолчанию большая степень

Возвести натуральное число a в натуральную степень b.
Примечание: 0≤a,b≤1000000000.
Размер результата не превышает 10000 десятичных знаков.
Пример входных и выходных данных:

Входной файл (test.in)
2 3

Выходной файл (test.out)
8

Видел похожие примеры, например здесь http://www.cyberforum.ru/post854383.html

но вот что-то перекодить под свою прогу не получилось. Подставил просто вместо 3 свое а, вместо 100 свое б, может что-то добавить надо? Комплируется, но при запуске вылезает какая-то чушь
sp.caster вне форума Ответить с цитированием
Старый 10.05.2011, 02:22   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Ваш код сюда. Вместе с чушью, которая вылазит при компиляции
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.05.2011, 10:01   #3
sp.caster
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 60
По умолчанию

Ой-ой, извиняюсь, забыл:
Код:
#include <iostream>
#include <stdlib.h> 

int main () 
{
    int n[100] = { 1 };
    int base = 10;
    int i, j, flag;
	long a , b;
	freopen ("test.in", "r", stdin);
	freopen ("test.out", "w", stdout);
	scanf ("%d %d", &a, &b);
    for (i = 0; i < 1000000000; i++) {
        
        for (j = 0; j < 1000000000; j++)
            n[j] *= a;

        for (j = 0; j < 1000000000-1; j++)
            if (n[j] >= base) {
                n[j+1] += n[j] / base;
                n[j] %= base;
            }
        
    }

    flag = 1;

    
    for (i = 999999999; i >= 0; i--) {
        
        if (flag == 1)
            if (n[i] == 0)
                continue;
            else
                flag = 0;

          
        printf("%d", n[i]);
      
    }
   
    putchar('\n');
    
    exit(EXIT_SUCCESS);
 
}
sp.caster вне форума Ответить с цитированием
Старый 10.05.2011, 10:05   #4
sp.caster
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 60
По умолчанию

А выводит мне вот это:

Unhandled exception at 0x008220fa in stepen.exe: 0xC0000005: Access violation reading location 0x008220fa.

И выбор ответа: break или continue.
sp.caster вне форума Ответить с цитированием
Старый 10.05.2011, 15:02   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
int n[100] = { 1 };
затем
Код:
for (j = 0; j < 1000000000; j++)
            n[j] *= a;
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
большая программа Serg12 Помощь студентам 1 09.02.2010 23:56
не большая просьба Informer Свободное общение 3 02.06.2009 19:06
БоЛьшая степень n1ce > Kuzia Паскаль, Turbo Pascal, PascalABC.NET 5 28.05.2009 12:02
Большая проблема BlackOmen Работа с сетью в Delphi 2 16.03.2008 19:02