سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
X به توان y
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result *= x;
}
return result;
}
با سلام دوست من فکر کنم صورت سوال رو متوجه نشدی
دوستمون گفته توان رو با جمع حساب کنی نه براش فرمول بنویسی . تو این جوابت جمع کجا بود.
یه چیزی مثل اینکه برای به توان رسوندن x به توان 2 باید x بار x رو با خودش جمع کنی .
مثل 3 با توان دو باید 3 با 3 رو با خوش جمع کنی
باز هم دستت درد نکنه
بله
حق با شما بود
اینم با جمع
double power(int x, int y)
{
double result = x;
for (int i = 1; i < y; i++)
{
result += result;
}
return result;
}
نه دوست من فورمولت اشتباهه من امتحان کردم.اینم با جمع
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;
}
فرمول شما x رو در y ضرب می کنه . در نهایت
فقط برای 2 کار می کنه
for (int i = 1; i < y; i++)
{
result += result;
}
این کد یعنی به تعداد y بار result رو با خودش جمع کنه یعنی همون y ضرب در result که همون x باشد
اگه ما اشتباه فهمدیم فایل پروژه رو بذار که ماهم استفاده کنیم/
چی شد پس دوست عزیز !
با تابع بازگشتی هم میشه یا نه؟؟؟
اگه میشه راهشو پیدا کردم
نه دوست عزیز راه سخت را باید پیدا کنم
دوست من بالاخره جواب رو پیدا کردم .
ببخشید یکی دو روز کار داشتم . ولی نوشتم امیدوارم بدرد بخوره
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;
}
2.JPG
این راه حل تمام مراحل به توان رسوندن رو با عمل جمل انجام می ده اگه خواستی مراحلشو واست توضیح بدم.
موفق باشی
مشکل اینه که شما با 2 حلقه نوشتید
فکر نمی کنم بشه با یک حلقه بدون تواب بازگشتی نوشت
در صورتیکه طبق گفته دوستمون باید با یک حلقه و عمل جمع و بدون توابع بازگشتی باشه (راستش به نظر من خود استادشون هم نتونه یک همچین چیزیو بنویسه)
با تشکر دوست من
والا همین رو هم یه سه چهار ساعتی ما رو سر کار گذاشت . اصول رو روی کاغذ می دونستم ولی برای جابجا کردن بین متغییر ها یکم رفتم سرکار.
ولی با این حال بد نشد . دسته کم فهمیدیم که هیچی از ریاضی نمی دونیم.
آره دوست من . موفق باشی
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;
}
آخرین ویرایش به وسیله ASHKANLAEI : پنج شنبه 14 آذر 1398 در 08:03 صبح
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)}");
}