PDA

View Full Version : سوال: بردن اعداد از مبنای 10 به مبنای 2



conter
چهارشنبه 16 اردیبهشت 1388, 00:24 صبح
آقایوون عزیز من نیاز فوری به یک برنامه دارم که اعداد رو از مبنای 10 به مبنای 2 ببره اوونم بدون استفاده از آرایه و فقط با استفاده از if ,while or do while ,for فقط میتونه از این دستورات استفاده کنه از آرایه خیلی راحت هستش اما من از راهی میخواهم که بدون استفاده از آرایه و دیگر دستورات باشه ممنون میشم کمکم کنید زبان برنامه c++ :عصبانی++::عصبانی++::عصبانی++:

conter
چهارشنبه 16 اردیبهشت 1388, 00:26 صبح
یکی از دوستان به من چند پست معرفی کرد اما اونا پیشرفته بودن :متفکر:

conter
چهارشنبه 16 اردیبهشت 1388, 00:39 صبح
می بخشید که 2 تا پست شده من دیدم پست قبلیم نیستش این تاپیکو باز کردم بازم میبخشید ولی لطفا یکی کمک کنه:ناراحت:

kashaneh
چهارشنبه 16 اردیبهشت 1388, 11:04 صبح
دوست عزیز روش ابتدایی و ساده آن این است که هر بار عدد مورد نظر رو به 2 تقسیم کنی و باقیمانده رو چاپ کنی، بعد هم خارج قسمت تقسیم عدد مورد نظر به 2 را به عنوان عدد جدید در نظر بگیری و این روند رو ادامه بدی تا عددت بشه 0 ... البته به این ترتیب مبنای دویی که چاپ میشه معکوس هست و برای این در ابتدای صحبتم گفتم راه حل ابتدایی و ساده!... با کمی تلاش، موفق به نوشتن کد آن خواهی شد... موفق باشی

conter
چهارشنبه 16 اردیبهشت 1388, 13:00 عصر
یعنی من یک حلقه درست کنم و بعد هر بار یه دفعه اون عدد رو بر 2 تقسیم کنم و در همون حلقه چاپش کنم یا اونو بریزم تویه یه متغیر و کل باقیمانده هایی که بر 2 تقسیم میشند رو به همین شکل بریزم تویه چند متغیر و چاپشون کنم؟

Salar Ashgi
چهارشنبه 16 اردیبهشت 1388, 20:10 عصر
سلام ، دوست عزيز روش ها متفاوته ، ولي اگه بخوايم بدون حافظه كمكي آرايه و ... انجام

بشه ، ميشه يه تابع بازگشتي براي انجام اين كار نوشت .

كد مورد نظر :



#include <iostream>
#include <conio>
void decimal_to_binary(int n){
if(n<2)
cout<<n;
else{
decimal_to_binary(n/2);
cout<<(n%2);
}
}
//===============================
int main(){
int n;
cout<<"Enter an Integer :\n";
cin>>n;
decimal_to_binary(n);
getch();
}


موفق و پيروز باشيد !!!

conter
پنج شنبه 17 اردیبهشت 1388, 00:30 صبح
ممنون حالا اگه کسی تونست با فقط شرط و حلقه for و while بنویسه ممنون میشم

kashaneh
پنج شنبه 17 اردیبهشت 1388, 11:27 صبح
دوست عزیز فرض کنید شما عدد مورد نظرتونو در متغیری به نام n ذخیره کردین... شرط حلقه شما تا وقتی که n>0 خواهد بود... در درون حلقه شما باید باقیمانده تقسیم n بر عدد 2 را چاپ کنید... سپس حاصل تقسیم n بر 2 را در درون همان متغیر n ذخیره کنی و تمام... اینکه کدش رو نمی نویسم چون می خواهم خودتون با توجه به این الگوریتم عادت کنید به نوشتن کد... با کمی تلاش موفق خواهید شد... موفق باشی

kiosksoft
پنج شنبه 17 اردیبهشت 1388, 12:41 عصر
دوست عزیز

خیلی سخت گرفتید , خودتون یه ذره فکر کنید به نتیجه خواهید رسید .

conter
چهارشنبه 23 اردیبهشت 1388, 17:41 عصر
برنامه اش رو نوشتم این جوری بود

conter
چهارشنبه 23 اردیبهشت 1388, 17:58 عصر
خوب مجبورم up کنم ببخشید