سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
Printable View
سلام دوستان
می خواستم ببینم چطور میشه برنامه ای نوشت که عملیات توان را با جمع حساب کنه؟
و فقط با یک حلقه این کار را بکنه
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;
}
ضمیمه 77612
این راه حل تمام مراحل به توان رسوندن رو با عمل جمل انجام می ده اگه خواستی مراحلشو واست توضیح بدم.
موفق باشی
مشکل اینه که شما با 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;
}
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)}");
}