Напишите программирование С#(си-шарп).Составить программу возведения заданного числа в третью степень, имеющую следующую закономерность:
1³=1
2³=3+5
3³=7+9+11
4³=13+15+17+19
5³=21+23+25+27+29
Вот написала:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication11
{
class Program
{
public int GetThird(int num)
{
int result = 0;
int kv = num * num;
if (num % 2 == 0)
{
for (int i = num/2; i > 0; i--)
{
result += kv - i * 2 + 1;
}
for (int i = 0; i < num / 2; i++)
{
result += kv + i * 2 + 1;
}
}
else
{
for (int i = (num - 1) / 2; i >0 ; i--)
{
result += kv - i * 2;
}
result += kv;
for (int i = 0; i < (num - 1) / 2; i++)
{
result += kv + i * 2 + 2;}
}
return result;
}
static void Main(string[] args) {
Console.WriteLine("Введите натуральноe числo ");
Console.Write("result=");
int a = int.Parse(Console.ReadLine());
Console.Write("c=");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("", b);
Console.Read();
}
}
}
Исправьте ошибку
Ответы
using System;
class Program
{
private static int GetThird(int num)
{
var result = 0;
var kv = num * num;
if (num % 2 == 0)
{
for (var i = num / 2; i > 0; i--)
{
result += kv - i * 2 + 1;
}
for (var i = 0; i < num / 2; i++)
{
result += kv + i * 2 + 1;
}
}
else
{
for (var i = (num - 1) / 2; i > 0; i--)
{
result += kv - i * 2;
}
result += kv;
for (var i = 0; i < (num - 1) / 2; i++)
{
result += kv + i * 2 + 2;
}
}
return result;
}
//оптимизированное свое решение, коротко и ясно
private static int GetThirdOptimized(int num)
{
var result = 0;
var kv = num * num - num + 1;
for (var i = 0; i < num; i++)
{
result += kv + i * 2;
}
return result;
}
private static void Main()
{
Console.WriteLine("Введите натуральноe числo ");
var i = int.Parse(Console.ReadLine());
Console.WriteLine("{0}^3 = {1} = {2} = {3}", i, i * i * i, GetThird(i), GetThirdOptimized(i));
Console.Read();
}
}