PDA

View Full Version : سوال: تشخیص عدد سه رقمی (با یک دستور شرطی)



mj_programmer
جمعه 30 مهر 1389, 11:15 صبح
با سلام
سوال من در مورد نوشتن الگوریتمی است که با یک دستور if و یک مقایسه بدون استفاده از and و or عدد سه رقمی را تشخیص دهد.
ممنون میشم مرا راهنمایی کنید.

مسعود اقدسی فام
جمعه 30 مهر 1389, 11:44 صبح
عدد با چه مبنایی؟

کمی واضحتر لطفا.

mj_programmer
جمعه 30 مهر 1389, 13:16 عصر
با تشکر از توجه شما
عدد در مبنای ده باشد.

مسعود اقدسی فام
جمعه 30 مهر 1389, 13:23 عصر
if( floor(log( abs( num ) )) == 2 )
{
// num has 3 digits
}

اگه عدد حتما مثبته، تابع abs رو حذف کن

armiya
جمعه 30 مهر 1389, 13:27 عصر
این تا بع هایی که نوشتید کلی توش مقایسه دارن که ؟
بنده خدا گفته با یه مقایسه

مسعود اقدسی فام
جمعه 30 مهر 1389, 13:35 عصر
این تا بع هایی که نوشتید کلی توش مقایسه دارن که ؟
بنده خدا گفته با یه مقایسه

همین که یه عدد به صورت مبنای ده نشون داده بشه کلی مقایسه داره! اینطوری حساب کنیم باید به زبان ماشین و با مبنای دو کار کنیم.

mj_programmer
جمعه 30 مهر 1389, 13:42 عصر
if( floor(log( abs( num ) )) == 2 )
{
// num has 3 digits
}

اگه عدد حتما مثبته، تابع abs رو حذف کن


بله عدد مثبت در نظر گرفته شده همین log خیلی کمکم کرد.با تشکر

Salar Ashgi
جمعه 30 مهر 1389, 13:49 عصر
در تکمیل گفته های دوست عزیز : مسعود اقدسی فام (http://www.barnamenevis.org/forum/member.php?u=87209) ؛

میتوان اثبات نمود که تعداد ارقام یک عدد n رقمی از فرمول زیر بدست می آید :



n:integer
Number_of_digits(n) = 1+floor(log10(n))


موفق باشید ./

tooraj_azizi_1035
یک شنبه 02 آبان 1389, 09:38 صبح
سلام،
آیا براتون مقدور هست که اونو به رشته تبدیل و بعد طولش را با 3 مقایسه کنید؟ :بوس:

Salar Ashgi
یک شنبه 02 آبان 1389, 10:01 صبح
آیا براتون مقدور هست که اونو به رشته تبدیل و بعد طولش را با 3 مقایسه کنید؟

منظورتان را کمی واضحتر بیان کنید ./

مسعود اقدسی فام
یک شنبه 02 آبان 1389, 15:08 عصر
سلام،
آیا براتون مقدور هست که اونو به رشته تبدیل و بعد طولش را با 3 مقایسه کنید؟ :بوس:
این هم روشیه. ولی برای اعداد سه رقمی منفی جواب نمی‌ده.

Salar Ashgi
سه شنبه 04 آبان 1389, 09:54 صبح
آیا براتون مقدور هست که اونو به رشته تبدیل و بعد طولش را با 3 مقایسه کنید؟

سوالتان کمی ایهام دار بود ؛
اگه منظورتون گرفتن عدد بشکل String هستش ، بله ، خوب میشه ؛ میتونید مثلا Length رشته رو با 3 مقایسه کنید ولی اگه قراره محاسبات زیادی روی این عدد انجام بشه ، بهینگی این روش کم و هزینه اش
بالاست !

nima898
چهارشنبه 05 آبان 1389, 11:25 صبح
نیازی نیست که به رشته تبدیل بشه حاصلش رو باید با 2 مقایسه کرد


if log(n)=2 then ...

Salar Ashgi
چهارشنبه 05 آبان 1389, 13:05 عصر
نیازی نیست که به رشته تبدیل بشه حاصلش رو باید با 2 مقایسه کرد

این که قبلا بررسی شد ، به پست های قبل دفت کنید ./

nima898
سه شنبه 11 آبان 1389, 09:13 صبح
این که قبلا بررسی شد ، به پست های قبل دفت کنید ./
اینو در پاسخ به این پست گفته بودم.

آیا براتون مقدور هست که اونو به رشته تبدیل و بعد طولش را با 3 مقایسه کنید؟ :بوس: