https://www.devskill.com/CodingProblems/ViewProblem/138
#include <bits/stdc++.h>
#define ll long long
ll a[60];
void fibo()
{
int i;
a[0]=0;
a[1]=1;
for(i=2;i<=59;i++)a[i]=a[i-1]+a[i-2];
}
int main()
{
fibo();
int x,n,p;
scanf("%d",&x);
for (int i=1;i<=x;i++)
{
scanf("%d",&n);
if(n>=60)n%=60;
printf("Case %d: %lld is the last digit.\n",i,a[n]%10);
}
return 0;
}
এটা নাম্বার থিওরি'র মজার একটা প্রোবলেম , একটু ম্যাথমেটিক্যাল ব্যপারস্যাপার আর কি । । এখন ঘটনা হইলো গিয়া , তোমারে একটা নাম্বার দেয়া থাকবে - তোমায় তততম ফিবোনাচ্চি নাম্বার এর লাস্ট ডিজিট প্রিন্ট করতে হবে । এখন মনে রাখতে হবে , একটা ব্যপার যে ---- ১ থেকে ৫৯ অবদি , ফিবোনাচ্চি নাম্বার এর লাস্ট ডিজিট গুলো , ৬০ থেকে পরবর্তী ৫৯ টি ফিবোনাচ্চি নাম্বার অবদি রিপিট হয় , এটা ফিবোনাচ্চি নাম্বার এর একটা গুণ , তুমি বলতে পারো , না হলে - এই প্রোবলেম'টা সলভ করতে আমাদের অনেক হিমশিম খেতে হতো । । যাই হোক , তাইলে আমরা যদি , ৫৯ অব্দি ফিবোনাচ্চি জেনারেট করতে পারি , তাইলেই হয়ে যাবে । । চলো কোড দেখে নেই চলো ------
#include <bits/stdc++.h>
#define ll long long
ll a[60];
void fibo()
{
int i;
a[0]=0;
a[1]=1;
for(i=2;i<=59;i++)a[i]=a[i-1]+a[i-2];
}
int main()
{
fibo();
int x,n,p;
scanf("%d",&x);
for (int i=1;i<=x;i++)
{
scanf("%d",&n);
if(n>=60)n%=60;
printf("Case %d: %lld is the last digit.\n",i,a[n]%10);
}
return 0;
}
No comments:
Post a Comment