ضرب دو عدد با تعداد ارقام بالا
سلام دوستان
بی ادبی نباشه ولی ما هر وقت اومدیم سوال مطرح کردیم کسی جواب درسی به ما نداد بخدا جای دوری نمیره
سوالم این بود با سی شارپو با کلاس ها می خوام برنامه ای بنویسم که دو عدد 40 رقمی رو از ورودی بگیره و حاصلظربشونو بدست بیاره تا حالا هر چی سرچ کردم با C++ بود
راهنمایی کنید لطفا
مرسی
تشکر
نقل قول: ضرب دو عدد با تعداد ارقام بالا
using System;
using System.Globalization;
using System.Numerics;
public class Example
{
public static void Main()
{
long number1 = 1234567890;
long number2 = 9876543210;
try
{
long product;
product = checked(number1 * number2);
}
catch (OverflowException)
{
BigInteger product;
product = BigInteger.Multiply(number1, number2);
Console.WriteLine(product.ToString());
}
Console.ReadKey();
}
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
tooraj_azizi_1035
using System;
using System.Globalization;
using System.Numerics;
public class Example
{
public static void Main()
{
long number1 = 1234567890;
long number2 = 9876543210;
try
{
long product;
product = checked(number1 * number2);
}
catch (OverflowException)
{
BigInteger product;
product = BigInteger.Multiply(number1, number2);
Console.WriteLine(product.ToString());
}
Console.ReadKey();
}
ممنون از راهنماییتون ولی دو عدد رو در هم ضرب نمیکنه فقط یه مقدار میگیره بعدشم press any key to continue
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
mohammadhafez
ممنون از راهنماییتون ولی دو عدد رو در هم ضرب نمیکنه فقط یه مقدار میگیره بعدشم press any key to continue
یعنی اگه کسی بی سوادم باشه کمک بخواد به چنجا میفرسنش اخرش برای یه دفعه هم که شده نمیگن اینو یاد بگیر نمونه های دیگه رو خودت بنویس الان وضع حال ماست صدتا کد دارم ولی یکیش اون چیزی نیس که ما می خواستیم یاد بگیریم
بازم مرسی
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
mohammadhafez
یعنی اگه کسی بی سوادم باشه کمک بخواد به چنجا میفرسنش اخرش برای یه دفعه هم که شده نمیگن اینو یاد بگیر نمونه های دیگه رو خودت بنویس الان وضع حال ماست صدتا کد دارم ولی یکیش اون چیزی نیس که ما می خواستیم یاد بگیریم
بازم مرسی
دوست عزیز ناراحت نشید ولی شما خیلی راحت طلب هستید. مگه نگفتید تو محیط کنسول میخوایید ؟ اینم از کنسول که دوست خوبمون براتون گذاشتن و تبدیلش کردن.
حالا اگه کار نمیکنه یکم وقت بزارید روش ببینید مشکلش کجاست.
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
Direlap
دوست عزیز ناراحت نشید ولی شما خیلی راحت طلب هستید. مگه نگفتید تو محیط کنسول میخوایید ؟ اینم از کنسول که دوست خوبمون براتون گذاشتن و تبدیلش کردن.
حالا اگه کار نمیکنه یکم وقت بزارید روش ببینید مشکلش کجاست.
من ناراحت نشدم رفیق مشکل اینه که من تازه شروع کردم هنو با بعضی متدها و ... اشنایی پیدانکردم راحت طلب بی ادبی نباشه مال کسایی که بلدن کد اماده می خوان
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
mohammadhafez
ممنون از راهنماییتون ولی دو عدد رو در هم ضرب نمیکنه فقط یه مقدار میگیره بعدشم press any key to continue
کدی که دوستمون دادن بدون ایراده و عدد نمیگیره. خودش دو تا نمونه عدد داده.
من تستش کردم بدون مشکل اجرا شد و چیزی هم نگفت.
کجای اجرای این قطعه کد مشکل دارید ؟
نقل قول: ضرب دو عدد با تعداد ارقام بالا
نقل قول:
نوشته شده توسط
Direlap
کدی که دوستمون دادن بدون ایراده و عدد نمیگیره. خودش دو تا نمونه عدد داده.
من تستش کردم بدون مشکل اجرا شد و چیزی هم نگفت.
کجای اجرای این قطعه کد مشکل دارید ؟
دمت گرم رفیق منم اجراش کردم عدد میگیره و خارج میشی مشکل اینجاس که دو عدد ضرب نمیکنه میخوام دو عدد 40 رقمی بگیره حاصلظربشو دربیاره دیوانه شدم از صبح این ویژوالو از بس که باش کدارو چک کردم
1 ضمیمه
نقل قول: ضرب دو عدد با تعداد ارقام بالا
برات نوشتم و ضمیمه کردم
موفق باشی
نقل قول: ضرب دو عدد با تعداد ارقام بالا
این هم روش من کار باهاش ساده است
ضرب به روش پویاست
دو عدد رو به صورت رشته میگیره و و حاصل ضرب رو به صورت رشته برمیگردونه
کنترل خطا نداره و فقط هم مثبت در مثبت
string Multiply(string num1, string num2)
{
string ans = "";
int n1 = num1.Length, n2 = num2.Length;
int n = n1 + n2;
int i, j, tmp;
int[] data = new int[n];
for (i = 0; i < n1; i++)
for (j = 0; j < n2; j++)
{
data[i + j] += int.Parse(num1[n1 - i - 1].ToString()) * int.Parse(num2[n2 - j - 1].ToString());
}
for (i = 0; i < n - 1; i++)
{
tmp = data[i];
data[i] = tmp % 10;
data[i + 1] += tmp / 10;
}
for (i = n-1; i >= 0; i--)
ans += data[i].ToString();
while (ans[0] == '0')
{
ans = ans.Substring(1, ans.Length - 1);
}
return ans.Trim();
}