Пожалуйста, прочтите новое правило об ограничении использования AI-инструментов. ×

Блог пользователя AdiReddy

Автор AdiReddy, история, 4 года назад, По-английски

I am getting runtime error for the above problem for shorter input,what can I do.

include

using namespace std;

int num_of_digits(int x) { int count=1; while(x>=10) { x=x/10; count++; } return count; }

int return_number(int arr[],int n) { int number=1,sum=0; for(int i=n-1;i>0;i--) { sum=sum+(number*arr[i]); number=number*10; } if(arr[0]!=0){sum=sum+(number*4);} return sum; }

int next(int x) { int digits=num_of_digits(x); int arr[digits+1]; int i; for (i = digits; i >0; --i) { arr[i]=x%10; x=x/10; } arr[0]=0; i=1;

while(i<=digits)
{
    if(arr[i]<=3) {arr[i]=4;break;}
    if(arr[i]==4) {i++;}
    if(arr[i]==6||arr[i]==5) {arr[i]=7;break;}
    if(arr[i]==7) {i++;}
    if(arr[i]==8||arr[i]==9)
    {
       while(true)
       {
           i--;
         if(arr[i]==4) {arr[i]=7;break;}
         if(arr[i]==0){arr[i]=4;break;}
       }
       break;
    }
}
for(int j=i+1;j<digits+1;j++)
{
    arr[j]=4;
}
int num=return_number(arr,digits+1);
return num;

}

int main() { int l,r; cin>>l>>r; int sum=0; int j=next(l); for (int i = l; i < r+1; ++i) { if(i<=j){sum+=j;} if(i==j){j=next(i+1);} } cout<<sum; }

Полный текст и комментарии »

  • Проголосовать: нравится
  • -40
  • Проголосовать: не нравится

Автор AdiReddy, история, 4 года назад, По-английски

I am getting runtime error for the above problem for shorter input,what can I do.

include

using namespace std;

int num_of_digits(int x) { int count=1; while(x>=10) { x=x/10; count++; } return count; }

int return_number(int arr[],int n) { int number=1,sum=0; for(int i=n-1;i>0;i--) { sum=sum+(number*arr[i]); number=number*10; } if(arr[0]!=0){sum=sum+(number*4);} return sum; }

int next(int x) { int digits=num_of_digits(x); int arr[digits+1]; int i; for (i = digits; i >0; --i) { arr[i]=x%10; x=x/10; } arr[0]=0; i=1;

while(i<=digits)
{
    if(arr[i]<=3) {arr[i]=4;break;}
    if(arr[i]==4) {i++;}
    if(arr[i]==6||arr[i]==5) {arr[i]=7;break;}
    if(arr[i]==7) {i++;}
    if(arr[i]==8||arr[i]==9)
    {
       while(true)
       {
           i--;
         if(arr[i]==4) {arr[i]=7;break;}
         if(arr[i]==0){arr[i]=4;break;}
       }
       break;
    }
}
for(int j=i+1;j<digits+1;j++)
{
    arr[j]=4;
}
int num=return_number(arr,digits+1);
return num;

}

int main() { int l,r; cin>>l>>r; int sum=0; int j=next(l); for (int i = l; i < r+1; ++i) { if(i<=j){sum+=j;} if(i==j){j=next(i+1);} } cout<<sum; }

Полный текст и комментарии »

  • Проголосовать: нравится
  • -27
  • Проголосовать: не нравится