Module: تقسیم عدد صحیح و باقی می ماند


Problem

14 /16


سخت ترین سوال برای مبتدیان یا ارقام یک عدد

Theory Click to read/hide

هنگام کار با ارقام یک عدد، نیاز به اعمال عملیات محاسبه باقیمانده تقسیم قابل مشاهده است. 

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

سخت ترین سوالی که برای مبتدیان مطرح می شود این است که چگونه ارقام آن را از یک عدد بگیرند و بدست آورند.
در واقع، اگر ریاضی را به خاطر داشته باشید، همه چیز به سادگی حل می شود. و ریاضیات به ما می گوید که هر عددی را می توان به مجموع عبارات رقمی تجزیه کرد.
به عنوان مثال: 365=3*100+6*10+5*1 . می بینیم که هر رقم ضریب رقم مربوط به عدد است. 
با استفاده از مثال تقسیم ستون ها بر عدد 10، نحوه وارد کردن هر رقم یک عدد را به یک متغیر جداگانه نشان خواهیم داد. 1، 10، 100 و غیره)

  

با تجزیه و تحلیل شکل، می بینید که  <پیش> e = n % 10; // عملیات n % 10 - آخرین رقم عدد n (یعنی واحدهای عدد) را محاسبه می کند 365 % 10 = 5 d = n / 10% 10; // عملیات n / 10 - عدد را 10 برابر کاهش می دهد، یعنی آخرین رقم عدد را کنار می گذارد (365 / 10 = 36 // اکنون می‌توانیم تعداد ده‌ها را با اعمال عملیات آشنا در نتیجه محاسبه کنیم - باقیمانده تقسیم بر عدد 10 را محاسبه کنید، 36 % 10 = 6 s = n / 100; // برای بدست آوردن صدها کافی است دو رقم از سمت راست عدد را کنار بگذارید، یعنی دوبار بر 10 تقسیم کنید (n / 10 / 10 یا همان n / 100 ) 365 / 100 = 3
با داشتن ارقام ذخیره شده عدد، می توانیم با ضرب رقم مورد نظر در رقم مربوطه از آنها هر عددی بسازیم: 
برای مثال، خط زیر یک عدد جدید از عدد اصلی n دریافت می کند که صدها و یک ها مرتب شده اند:
1) تعداد قدیمی یکها (ذخیره شده در متغیر e)  ضرب در 100 
2) تعداد ده ها قدیمی (ذخیره شده در متغیر d)  در 10 
ضرب کنید 3) به سادگی می توانیم عدد قدیمی صدها را در 1 ضرب کنیم یا به سادگی مقدار ذخیره شده در متغیر s
را بگیریم. سپس فقط مقادیر 1، 2 و 3 را اضافه کنید و یک عدد جدید دریافت کنید:

n1 = e * 100 + d * 10 + s؛

کل برنامه به شکل زیر خواهد بود: <پیش> وارد کردن java.util.Scanner. کلاس عمومی اصلی { public static void main(string[] args) { Scanner in = new Scanner(System.in); int n, e, d, s; n = in.nextInt(); e = n % 10; d = n / 10% 10; s = n / 100; System.out.print(e + "" + d + "" + s + "" + (e * 100 + d * 10 + s)); }

Problem

یک عدد سه رقمی از صفحه کلید وارد می شود. 
برنامه ای بنویسید که فضای جدا شده در یک خط را چاپ کند:
مجموع ارقام عدد و عدد جدید که از جایگشت یک ها و ده ها تشکیل می شود