View Full Version : مبتدی: سوال : تبدیل توان به جمع
scholargabriel
دوشنبه 16 آبان 1390, 22:34 عصر
سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
uniqueboy_ara
دوشنبه 16 آبان 1390, 22:48 عصر
X به توان y
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result *= x;
}
return result;
}
electro_esma
دوشنبه 16 آبان 1390, 23:03 عصر
با سلام دوست من فکر کنم صورت سوال رو متوجه نشدی
دوستمون گفته توان رو با جمع حساب کنی نه براش فرمول بنویسی . تو این جوابت جمع کجا بود.
یه چیزی مثل اینکه برای به توان رسوندن x به توان 2 باید x بار x رو با خودش جمع کنی .
مثل 3 با توان دو باید 3 با 3 رو با خوش جمع کنی
باز هم دستت درد نکنه
uniqueboy_ara
دوشنبه 16 آبان 1390, 23:11 عصر
بله
حق با شما بود
اینم با جمع
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result += result;
}
return result;
}
scholargabriel
دوشنبه 16 آبان 1390, 23:12 عصر
X به توان y
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result *= x;
}
return result;
}
مرسی دوست عزیز ولی من با عملیات جمع می خوام نه ضرب
مثلا 2 به توان 3 یعنی : ( 2+2+2+2 )
electro_esma
دوشنبه 16 آبان 1390, 23:22 عصر
اینم با جمع
1
2
3
4
5
6
7
8
9
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result += result;
}
return result;
}
نه دوست من فورمولت اشتباهه من امتحان کردم.
electro_esma
دوشنبه 16 آبان 1390, 23:22 عصر
فرمول شما x رو در y ضرب می کنه . در نهایت
scholargabriel
دوشنبه 16 آبان 1390, 23:37 عصر
فقط برای 2 کار می کنه
electro_esma
دوشنبه 16 آبان 1390, 23:46 عصر
for (int i = 1; i < y; i++)
{
result += result;
}
این کد یعنی به تعداد y بار result رو با خودش جمع کنه یعنی همون y ضرب در result که همون x باشد
اگه ما اشتباه فهمدیم فایل پروژه رو بذار که ماهم استفاده کنیم/
electro_esma
دوشنبه 16 آبان 1390, 23:54 عصر
چی شد پس دوست عزیز !
scholargabriel
سه شنبه 17 آبان 1390, 00:25 صبح
چی شد پس دوست عزیز !
نگاه یه برنامه چه جور مارا پیچوند :گریه:
uniqueboy_ara
سه شنبه 17 آبان 1390, 00:39 صبح
با تابع بازگشتی هم میشه یا نه؟؟؟
اگه میشه راهشو پیدا کردم:لبخند:
scholargabriel
سه شنبه 17 آبان 1390, 00:53 صبح
نه دوست عزیز راه سخت را باید پیدا کنم
electro_esma
چهارشنبه 18 آبان 1390, 00:48 صبح
دوست من بالاخره جواب رو پیدا کردم .
ببخشید یکی دو روز کار داشتم . ولی نوشتم امیدوارم بدرد بخوره
privatevoid button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
x = Convert.ToInt32(textBox1.Text);
x1 = Convert.ToInt32(textBox2.Text);
y1 = 1;
tawan(x, x);
while (1 > 0)
{
if (y1 < x1) { tawan(x, y2); }
else { break; }
}
}
//---------------------------------------------------------------------
publicint tawan(int s1,int s2)
{
y2 = 0;
//----------------------------
for (int i = 0; i < s2; i++)
{
y2 = y2 + s1;
}
//-----------------------------
y1 = y1 + 1;
textBox3.Text = y2.ToString();
return 1;
}
77612
electro_esma
چهارشنبه 18 آبان 1390, 00:49 صبح
این راه حل تمام مراحل به توان رسوندن رو با عمل جمل انجام می ده اگه خواستی مراحلشو واست توضیح بدم.
موفق باشی
wolf_majid
چهارشنبه 18 آبان 1390, 01:18 صبح
مشکل اینه که شما با 2 حلقه نوشتید
فکر نمی کنم بشه با یک حلقه بدون تواب بازگشتی نوشت
در صورتیکه طبق گفته دوستمون باید با یک حلقه و عمل جمع و بدون توابع بازگشتی باشه (راستش به نظر من خود استادشون هم نتونه یک همچین چیزیو بنویسه) :متعجب:
electro_esma
چهارشنبه 18 آبان 1390, 01:38 صبح
با تشکر دوست من
والا همین رو هم یه سه چهار ساعتی ما رو سر کار گذاشت . اصول رو روی کاغذ می دونستم ولی برای جابجا کردن بین متغییر ها یکم رفتم سرکار.
ولی با این حال بد نشد . دسته کم فهمیدیم که هیچی از ریاضی نمی دونیم.:بامزه:
wolf_majid
چهارشنبه 18 آبان 1390, 01:41 صبح
با تشکر دوست من
والا همین رو هم یه سه چهار ساعتی ما رو سر کار گذاشت . اصول رو روی کاغذ می دونستم ولی برای جابجا کردن بین متغییر ها یکم رفتم سرکار.
ولی با این حال بد نشد . دسته کم فهمیدیم که هیچی از ریاضی نمی دونیم.:بامزه:
دقیقا"
من هم به این نتیجه رسیدم که هیچی سخت تر از اون هایی نیست که به نظر میرسند ساده اند
electro_esma
چهارشنبه 18 آبان 1390, 01:45 صبح
آره دوست من . موفق باشی
gfdsghgfdh
سه شنبه 12 آذر 1398, 00:39 صبح
با تابع بازگشتی هم میشه یا نه؟؟؟
اگه میشه راهشو پیدا کردم:لبخند:
اگر براتون امکانش باشه ممنون میشم بفرستید
ASHKANLAEI
سه شنبه 12 آذر 1398, 18:15 عصر
public void tavan(int x, int y) {
if (y == 1)
return x;
int n = 0;
for (int i = 0; i < tavan(x, y - 1); i++)
n += x;
return n;
}
the king
چهارشنبه 13 آذر 1398, 01:16 صبح
سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
private void Form1_Load(object sender, EventArgs e)
{
var x = 4;
var y = 7;
// x ^ y = ?
var m = 1;
if (y > 0)
{
m = 0;
var n = 1;
var j = 0;
for (var i = 0; j < y; i++)
{
m += n;
if (i == x - 1)
{
n = m;
i = 0;
j++;
}
}
}
MessageBox.Show($"m = {m}, Math.Pow(x,y) = {Math.Pow(x, y)}");
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.