شیفت اعداد
برنامه ای بنویسید که ابتدا یک عدد صحیح و مثبت مانند n را از ورودی خوانده و سپس یک عدد صحیح (مثبت یا منفی) دیگر مانندm را نیز از ورودی خوانده و سپس اگر m عددی مثبت بودn را به صورت چرخشی معادل با m رقم به سمت راست شیفت دهد و در غیر این صورت (منفی بودن عدد m)، عدد مورد نظر را m رقم به سمت چپ شیفت داده و در خروجی چاپ کند. لطفا برای درک بهتر صورت سوال، با دقت به نمونه مثال های داده شده در ادامه سوال توجه فرمایید.
توجه
در ضمن تعریف شیفت راست به صورت بسیار ساده به این شکل است که اگر یک عدد مانند ۱۴۲۵ را معادل یک رقم به سمت راست شیفت دهیم به این معنی است که رقم یکان عدد حذف شده و تمامی ارقام به غیر از یکان به اندازه یک واحد به سمت راست منتقل (شیفت) می شوند و سپس به جای بزرگترین رقم در این مثال (هزارگان یا همان رقم ۱) رقم ۰ قرار می گیرد. بنابراین با شیفت دادن عدد ۱۴۲۵ به اندازه یک واحد به سمت راست، عدد ۰۱۴۲ بدست می آید. حال منظور از شیفت چرخشی این است که رقم یکان عدد در این مثال خاص به جای رقم ۱ قرار گرفته و بقیه ارقام همانند مثال قبل به جای رقم سمت راست خود قرار می گیرند، به عبارتی با انجام دادن عمل شیفت چرخشی روی عدد ۱۴۲۵ به سمت راست به اندازه یک واحد، عدد مورد نظر به ۵۱۴۲ تبدیل می شود.
ورودی
ورودی شامل دو خط است که در خط اول عدد صحیح و مثبت n و در خط دوم عدد صحیح m به عنوان ورودی داده می شوند.
خروجی
خروجی برنامهی شما باید شامل یک خط باشد که معادل شیف داده شده ی عدد nnn خواهد بود.
مثال
در اینجا چند نمونه برای درک بهتر صورت سوال و قالب ورودی و خروجی تستها داده شده است.
ورودی نمونه ۱
1 2 |
۴۵۷۸۹ ۱ |
خروجی نمونه ۱
1 |
۹۴۵۷۸ |
ورودی نمونه ۲
1 2 |
۴۵۷۸۹ ۲ |
خروجی نمونه ۲
1 |
۸۹۴۵۷ |
ورودی نمونه ۳
1 2 |
۴۵۷۸۹ -۱ |
خروجی نمونه ۳
1 |
۵۷۸۹۴ |
ورودی نمونه ۴
1 2 |
۴۵۰۲۶۵۴۳۲۳۴ ۴ |
خروجی نمونه ۴
1 |
۳۲۳۴۴۵۰۲۶۵۴ |
ورودی نمونه ۵
1 2 |
۷۸۵۰۵۰۶۶ -۳ |
خروجی نمونه ۵
1 |
۰۵۰۶۶۷۸۵ |
ورودی نمونه ۶
1 2 |
۴۵۱۲۳۶ ۸ |
خروجی نمونه ۶
1 |
۳۶۴۵۱۲ |
پاسخ ها ( ۴ )
سلام
من با استفاده از کتابخانه <string.h>
و با توابع ()erase و ()replace
برنامهای که فرمودید رو نوشتم:
سلام
ببخشید ولی این روش شما جواب غلط دادو سایت خطا گرفت
خیلی ممنونم ازتون دوست عزیز