خروش جان
يك اشتباه كوچك در برنامه نويسي كامپيوتري موجب اين اشتباه شد كه فكر كنم عدد ديگري وجود نداره اونم اينه كه:
- کد: انتخاب همه
for a=10:99;
for b=11:99;
if ((b==20)| (b==30)|(b==40)|(b==50)|(b==60)|(b==70)|(b==80)|(b==90))
continue;
end;
b2=mod(b,10);
b1=(b-b2)/10;
a2=mod(a,10);
a1=(a-a2)/10;
if ( (a2==b1)|(a1==b2));
if ( (a/b==a1/b2)|(a/b==a2/b1));
a
m='/'
b
end
end
end
end
اولين بار كه برنامه رو نوشتم به اشتباه در سطر سوم به جاي continue نوشته بودم break كه اين اشتباه باعث شد مخرج بالاي 19 نرود و دو چند عددي كه شما اشاره كرديد را نيابد
البته اين برنامه اعدادي مثل11/11 و 22/22 و... هم پيدا ميكنه
و اما سه رقمي ها
من برنامه زير رو براي حالتي نوشتم كه صدگان صورت كسر با دهگان پايين كسر ساده بشود
كه اين فقط يكي از حالات ممكنه كه با اين حا جواب هاي زيادي ميدهد
- کد: انتخاب همه
warning off MATLAB:divideByZero
for a=100:999;
for b=100:999;
a3=mod(a,10);
a2=(mod(a,100)-a3)/10;
a1=(a-mod(a,100))/100;
b3=mod(b,10);
b2=(mod(b,100)-b3)/10;
b1=(b-mod(b,100))/100;
a23=a2*10 +a3;
a13=a1*10 +a3;
a12=a1*10 +a2;
b23=b2*10 +b3;
b13=b1*10 +b3;
b12=b1*10 +b2;
if ((a1==b2)& (a/b==a23/b13)&(a~=b))
a
m='/'
b
z
end
end
end
بعضي از جواب ها عبارتند از :
616/112 121/220 728/224 130/325 132/330 231/330 830/332 835/334
134/335 536/335 737/335 938/335 و...
البته برنامه رو طوري نوشتم كه از نشان دادن اعدادي مثل 110/110 .... 119/119
220/220 ....... 229/229 صرف نظر كنه
من اين دو برنامه رو تو (MATLAB(mathmatics labنوشتم
نرم افزار فوق العاده اي براي محاسبات رياضيه
با تشكر
جنين