ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1013. K-ичные числа. Версия 3

Why my program is Compilation Error?
Послано hls 6 авг 2003 09:42
#include <stdio.h>
#include <mem.h>
int num[2000],temp[2000],n,k,c1,c2;
void jian()
{
  int i,tw=0;
  for (i=1998;i>=0;i--)
  {
    if ((num[i]-temp[i]-tw)<0) {num[i]=10+num[i]-temp[i]-tw;tw=1;}
    else {num[i]=num[i]-temp[i]-tw;tw=0;}
    if (i<c2) {c2=i;break;}
  }
}
void cheng(int m)
{
  int i,j,jw,t;
  for (i=1;i<=m;i++)
  {
    jw=0;
    for (j=1998;j>=0;j--)
    {
      t=temp[j];
      temp[j]=(k*temp[j]+jw)%10;
      jw=(k*t+jw)/10;
      if ((j<=c1)&&(jw==0)) {c1=j;break;}
    }
  }
  i=1998;
  while (i>=0)
  {
    if (temp[i]>0) {temp[i]--;break;}
    else {temp[i]=9;i--;}
  }
}
int main()
{
  int i,j;
  scanf("%d %d",&n,&k);
  c2=0;
  for (i=n;i>=1;i--)
  {
    for (j=0;j<=1998;j++) temp[j]=0;
    temp[1998]=1;
    c1=1998;
    cheng(i);
    if (i==n) for (j=0;j<=1998;j++) num[j]=temp[j];
    else jian();
  }
  for (i=0;i<=1998;i++)
    if (num[i]!=0) {j=i;break;}
  for (i=j;i<=1998;i++)
    printf("%d",num[i]);
  printf("\n");
  return 0;
}
if you get compile error,it will send you an e_mail... ...(see it)
Послано Seany 6 авг 2003 13:08
> #include <stdio.h>
> #include <mem.h>
> int num[2000],temp[2000],n,k,c1,c2;
> void jian()
> {
>   int i,tw=0;
>   for (i=1998;i>=0;i--)
>   {
>     if ((num[i]-temp[i]-tw)<0) {num[i]=10+num[i]-temp[i]-tw;tw=1;}
>     else {num[i]=num[i]-temp[i]-tw;tw=0;}
>     if (i<c2) {c2=i;break;}
>   }
> }
> void cheng(int m)
> {
>   int i,j,jw,t;
>   for (i=1;i<=m;i++)
>   {
>     jw=0;
>     for (j=1998;j>=0;j--)
>     {
>       t=temp[j];
>       temp[j]=(k*temp[j]+jw)%10;
>       jw=(k*t+jw)/10;
>       if ((j<=c1)&&(jw==0)) {c1=j;break;}
>     }
>   }
>   i=1998;
>   while (i>=0)
>   {
>     if (temp[i]>0) {temp[i]--;break;}
>     else {temp[i]=9;i--;}
>   }
> }
> int main()
> {
>   int i,j;
>   scanf("%d %d",&n,&k);
>   c2=0;
>   for (i=n;i>=1;i--)
>   {
>     for (j=0;j<=1998;j++) temp[j]=0;
>     temp[1998]=1;
>     c1=1998;
>     cheng(i);
>     if (i==n) for (j=0;j<=1998;j++) num[j]=temp[j];
>     else jian();
>   }
>   for (i=0;i<=1998;i++)
>     if (num[i]!=0) {j=i;break;}
>   for (i=j;i<=1998;i++)
>     printf("%d",num[i]);
>   printf("\n");
>   return 0;
> }
Just delete string "#include <mem.h>" (-)
Послано Renat Mullakhanov 7 авг 2003 11:22
> #include <stdio.h>
> #include <mem.h>
> int num[2000],temp[2000],n,k,c1,c2;
> void jian()
> {
>   int i,tw=0;
>   for (i=1998;i>=0;i--)
>   {
>     if ((num[i]-temp[i]-tw)<0) {num[i]=10+num[i]-temp[i]-tw;tw=1;}
>     else {num[i]=num[i]-temp[i]-tw;tw=0;}
>     if (i<c2) {c2=i;break;}
>   }
> }
> void cheng(int m)
> {
>   int i,j,jw,t;
>   for (i=1;i<=m;i++)
>   {
>     jw=0;
>     for (j=1998;j>=0;j--)
>     {
>       t=temp[j];
>       temp[j]=(k*temp[j]+jw)%10;
>       jw=(k*t+jw)/10;
>       if ((j<=c1)&&(jw==0)) {c1=j;break;}
>     }
>   }
>   i=1998;
>   while (i>=0)
>   {
>     if (temp[i]>0) {temp[i]--;break;}
>     else {temp[i]=9;i--;}
>   }
> }
> int main()
> {
>   int i,j;
>   scanf("%d %d",&n,&k);
>   c2=0;
>   for (i=n;i>=1;i--)
>   {
>     for (j=0;j<=1998;j++) temp[j]=0;
>     temp[1998]=1;
>     c1=1998;
>     cheng(i);
>     if (i==n) for (j=0;j<=1998;j++) num[j]=temp[j];
>     else jian();
>   }
>   for (i=0;i<=1998;i++)
>     if (num[i]!=0) {j=i;break;}
>   for (i=j;i<=1998;i++)
>     printf("%d",num[i]);
>   printf("\n");
>   return 0;
> }