Thursday, 25 May 2017

UVA 10018 Solve:

আলোচনাঃ

 প্রব্লেমটাতে বলা হয়েছে একটা ইন্টিজার সংখ্যা নিতে হবে।  পরে এই সংখ্যাকে রিভার্স করতে হবে। রিভার্স করার পর মেইন সংখ্যার সাথে যোগ করতে হবে। যোগফল যদি মেইন সংখ্যার সাথে পেলিন্ড্রম হয় তাহলে আর প্রিন্ট করবে না। আর যদি   পেলিন্ড্রম না  হয় তাহলে যোগফলকে মেইন সংখ্যা ধরে একই ভাবে কাজ করতে হবে যতক্ষণ না পেলিন্ড্রম না  হয়। পেলিন্ড্রম হয়ে গেলে কতগুলো স্টেপ লাগলো পেলিন্ড্রম  হতে সেটা সহ যোগফল প্রিন্ট করতে হবে।


Accepted code:

#include<bits/stdc++.h>
using namespace std;
int main()
{
   long long int test,num,a,s,c;
    while(scanf("%d",&test)==1)
    {
        while(test--)
        {
            cin>>num;
            a=num;
            c=0;
            while(1)
            {
                s=0;
                while(num!=0)
                {
                    s=s*10+num%10;
                    num/=10;
                }
              if(s==a)
                break;
              else
              {
                 num=s+a;
                  a=s+a;
                  c++;
              }
            }
            cout<<c<<" "<<a<<endl;
        }
    }
    return 0;
}




No comments:

Post a Comment