سوال گدا از ریاضی دان بزرگ
یکی از دانشمندان بزرگ ریاضی بعد از چندین دهه تحقیق و کشفیات بزرگ در ریاضیات روزی برای استراحت به کافه می رود. دم در کافه به گدایی که نشسته بود یک دلار می دهد و میگوید اگر تو بتوانی من را متعجب کنی ۱۰۰ دلار به تو می دهم. آن گدا هم سوال ریاضی به این دانشمند می دهد و دانشمند قبل از اینکه سوال را ببیند ۱۰۰ دلار را می دهد. آن سوال به انداره سنگین و پیچیده بود که از طرف آن دانشمند به ۳ دانشمند ریاضی دان دیگر نیز ارسال شد و هیچ یک به جوابی نرسیدند تا آخر کار به پیش گذا رفتند و جواب آن را یافتند و به این نکته رسیدند که همیشه به همه مسایل نباید با پیچیدگی سنگین نگاه کرد.
گاهی باید از دید ساده نگری به مسایل بسیار سخت نگاه کرد!
سوال اینه که جمله n ام دنباله رو برو رو بنویسید.
۱ , ۱۱ , ۲۱ , ۱۲۱۱ , ۱۱۱۲۲۱ , ۳۱۲۲۱۱ , …
پاسخ ( ۱ )
package package1;
import java.util.Scanner;
public class Ta_3 {
//۱,۱۱,۲۱,۱۲۱۱,۱۱۱۲۲۱,۳۱۲۲۱۱,…
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int n=reader.nextInt();
String temp=””,r,result=”1″;
int[] a=new int [n];
int j,count;
for(int i=0;i<n-1;i++ )
{
j=0;
count=0;
r=result;
result=””;
char[] ch=r.toCharArray();
int k=r.toCharArray().length;
k-=1;
int h=0;
while (k!=-1)
{
ch[h]=r.charAt(k);
k–;
h++;
}
String s=new String(ch);
a[i]=Integer.parseInt(s);
while(a[i]!=0)
{
temp=Integer.toString(a[i]%10);
a[i]/=10;
if(temp.equals(r.charAt(j)+””))
{
count++;
temp=Integer.toString(a[i]%10);
if(a[i]!=0&&temp.equals(r.charAt(j)+””)!=true){
result+=Integer.toString(count).concat(r.charAt(j)+””);
j+=count;
count=0;
}
}
else
{
if(count==0)
result+=Integer.toString(count+1).concat(r.charAt(j)+””);
if(a[i]!=0)
j++;
}
if(a[i]==0)
{
result+=Integer.toString(count).concat(r.charAt(j)+””);
}
}
}
System.out.println(result);
reader.close();
}
}