以下是我需要打印数组中每个值的出现次数的代码。
package main
import "fmt"
func main(){
//Initialize an array
inputArray := []int{10,20,30,56,67,90,10,20}
printUniqueValue(inputArray)
}
func printUniqueValue( arr []int){
//Create a dictionary of values for each element
var dict map[int]int
count := 0
for _ , num := range arr {
dict[num] = count+1
}
fmt.Println(dict)
}
Run Code Online (Sandbox Code Playgroud)
但是我不能像我希望的那样构造字典,dict[10] 应该有值 2。示例预期输出:
dict[10] = 2
dict[20] = 2
dict[30] = 1
Run Code Online (Sandbox Code Playgroud)
我得到的错误:恐慌:分配到 nil 地图中的条目
我已经将Python阶乘函数转换为golang程序。Python代码如下
def main():
n = input('Enter a number')
result = factorial(n)
print(result)
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)
Golang问题如下,
package main
import "fmt"
func main() {
fmt.Println("Enter a Number ")
var n int64
var result int64
fmt.Scan(&n)
result = factorial(n)
fmt.Println(result)
}
func factorial(n int64) int64 {
//fmt.Println(n)
if n == 0 {
return int64(1)
}
//fmt.Println(n * factorial(n-1))
return int64(n * factorial(n-1))
}
Run Code Online (Sandbox Code Playgroud)
对于较小的数字,两个程序的结果是相同的。但对于较大的数字,Go 输出为零。终端输出如下,
enKats-MacBook-Air:Factorials venkat$ python factorial.py
Enter a number5 …
Run Code Online (Sandbox Code Playgroud) 我已初始化了一个大小为10的数组,但在打印时,sizof数组显示为40.代码如下,
#include <iostream>
using namespace std;
int main() {
int arr[10] = {2,4,5,6,7,8,9,6,90};
printf("%d \n" , sizeof(arr));
}
Run Code Online (Sandbox Code Playgroud)
输出:
/Users/venkat/Library/Caches/CLion2016.1/cmake/generated/InsertionSort-e101b03d/e101b03d/Debug/InsertionSort
40
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
C打印40什么的?