[英]How can i write a program in c# which can calculate the square of index's numbers?
我正在尝试解决一个算法示例。 会有一个数组。我需要计算这个 arrays 索引号的平方。 Output 应该是:“0-1-4-9-16-25-36-49-64-81”,因为索引号以 0-9 开头。
我搜索了 web。但我找不到任何东西。我认为我们需要像这样声明一个数组:
int[] a = new int[10];
但我不知道在那之后该怎么做。我们是否应该接受用户的输入?
如果有人知道 python,这是 python 代码:
from numpy import
indis = arrange(0,10)
for dizi in indis:
dizi=dizi**2
print(dizi, end=" ")
谢谢您的帮助。
for(int i=0; i<10; i++){
Console.WriteLine(i*i);
}
这个怎么样 - 它更像是 python
var sq = Enumerable.Range(0,9).Select(x=>x*x).ToArray();
foreach(var s in sq)
Console.WriteLine(s);
或者可能
var sq = Enumerable.Range(0,9).ToArray();
foreach(var s in sq)
Console.WriteLine(s*s);
这更接近 python
由于您显然从 Python 移动到 C#,因此让我们从 Python 开始(可能是我第一次用这种语言编写代码......)。
在这里,到目前为止我发现了什么:
range()
东西,它可能会也可能不会被优化掉。由于2.,你没有清楚地看到手头的问题,因此,当你转移到C#时,你没有看到明显的优化。在那里(在C#中),没有人会创建一个临时数据结构(例如一个数组)具有连续数量的整数,然后对其进行迭代。 这在许多层面上都是浪费和晦涩的。
因此,在 Python 的限制下,为了避免range()
开销,您可能会这样写:
def meh(arr):
i = 0
while i < len(arr):
print(i*i)
i = i + 1
当然,上面的参数arr
将是一个列表,而不是数组,因为 1。
如果您将那部分(优化的)代码翻译成 C#,它看起来像:
void meh<T>(T[] arr) {
for (int i = 0; i < arr.Size; i++) {
print(i*i)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.