اعداد مقلوب
اعداد مقلوب
حقیقتش رو بخوام بگم من c# یه مقداری بلد هستم اما نه اونقدر... استاد یه پروژه مازاد بر نمره درس داده یعنی 20 + 3 گفتم اگه بشه به کمک شما بنویسمش... عدد مقلوب عددی است که می تواند در یکی از ارقام خودش غیر از 1 ضرب شود...حاصل عددی خواهد بود که اعداد آن ، جابه جا شده ی اعداد ، عدد اصلی (عدد اول می باشد)...عدد مقلوبی را که از ضرب کردن عدد مقلوبی دیگری در یک رقم به وجود آید...می گوییم به وسیله آن عدد تولید شده است...دو عدد مقلوب هم هستند اگر بتوانیم هر کدام از آنها را تنها با جا به جایی ارقامشان به دبگری تبدیل کنیم...برای مثال اگر 1246878 یک عدد مقلوب است که اگر در 6 ضرب شود که یکی از ارقام آن است نتیجه می شود 7481268 که اقام آن با ارقام عدد اصلی یکی است...
برنامه ای که عددی صحیح 1 تا 9 رقمی را از کاربر دریافت کرده و بررسی کند آیا عدد مقلوب است یا نه؟
اگر مقلوب پیغام مناسبی چاپ کند که عدد مقلوب نیست؟
اگر بود تمامی ارقامی را که باعث تولید اعداد قلب شده این عدد می شود ، در خروجی چاپ کند. برای مثال عدد 123456789 را دریافت و به ما 2و4و5و7و8 را به ما برگرداند و اگر 120 را بدهیم با پیغامی مناسب بگوید این عدد مقلوب نیست....
چند عدد مقلوب بین 100000 تا 999999 وجود دارند که ارقام آن تکراری نباشد برنامه باید با ذکر تعداد این ارقام را نمایش دهد...
خیلی ممنون می شم اگه به من کمک کنید....
واقعا هرچی می خوونم نمی فهمم
/* ---------------------------------------------------------------------- */
1. اول یه تابعی می نویسی که یک عدد و بگیره اونو تبدیل به رشته بکنه. نکته اینجاست که باید رشته ات بصورت صعودی باشه یعنی برای عدد 954811523 باید رشنه "112345589" برگردونه.
private string ToStringAscendant( long x )
{
string temp = “Empty”;
// your Routine
Return temp;
}
2. حالا باید تابعی بنویسی که دو تا عدد و بگیره و بگه که این دو عدد مقلوب هستند یا نه با کمک تابع قبلی که نوشتی؟
private bool IsMaghloob(long x , long y )
{
String sx = this. ToStringAscendant( x);
String sy = this. ToStringAscendant( y);
if( sx.Contain(sy) && sx.Lenght == sy.Lenght )
return true;
return false;
}
حال باید یه همچین حلقه ای بنویسید:
int counter=2;
long input = 954811523;
long temp ;
bool find = false;
for( ; counter<10; counter++)
{
temp = input*counter;
if( this. IsMaghloob( input, temp )
{
If( !find )
{
Console.WriteLine( “OK Is Maghloob.{0}”,input);
}
Find = true;
Console.WriteLine( “ Value={0}, Multiplier={}; ”temp,counter);
}
If( !find )
{
Console.WriteLine( “ Fail> Not Found Any Value Form 2-9!”);
}
}
فک کنم کل کاریه که شما باید بکنید فقط تابع ToStringAscendant کامل کنید، یهتره داخل تابع از کلاس stringBuilder بجای کلاس string استفاده کنید.