diff --git a/200x.ods b/200x.ods new file mode 100644 index 0000000..105aaff Binary files /dev/null and b/200x.ods differ diff --git a/Screenshot_20181206_233225.png b/Screenshot_20181206_233225.png new file mode 100644 index 0000000..1af4494 Binary files /dev/null and b/Screenshot_20181206_233225.png differ diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..773df52 --- /dev/null +++ b/go.mod @@ -0,0 +1 @@ +module git.kolaente.de/konrad/multiplication-table diff --git a/main.go b/main.go new file mode 100644 index 0000000..f359329 --- /dev/null +++ b/main.go @@ -0,0 +1,76 @@ +package main + +import ( + "encoding/csv" + "fmt" + "log" + "os" + "strconv" +) + +func main() { + fmt.Println("Enter Number:") + var number int + _, err := fmt.Scanf("%d", &number) + if err != nil { + log.Fatal(err) + } + + matrice := make([][]int, number+1) + + + for i := 0; i <= number; i++ { + matrice[i] = make([]int, number+1) + for j := 0; j <= number; j++ { + matrice[i][j] = (j * i) % number + } + } + + // Save it + if err := csvExport(matrice); err != nil { + log.Fatal(err) + } + + // output it + fmt.Print("\t") + for i := 0; i <= number; i++ { + fmt.Print(i, "\t") + } + fmt.Println() + + for rownumber, row := range matrice { + fmt.Print(rownumber, "\t") + for _, col := range row { + fmt.Print(col, "\t") + } + fmt.Println() + } + +} + +func csvExport(data [][]int) error { + file, err := os.Create("result.csv") + if err != nil { + return err + } + defer file.Close() + + writer := csv.NewWriter(file) + defer writer.Flush() + + //Prepare + dataStrings := make([][]string, len(data)) + for in := range data { + dataStrings[in] = make([]string, len(data[in])) + for in2, val2 := range data[in] { + dataStrings[in][in2] = strconv.Itoa(val2) + } + } + + for _, value := range dataStrings { + if err := writer.Write(value); err != nil { + return err // let's return errors if necessary, rather than having a one-size-fits-all error handler + } + } + return nil +} \ No newline at end of file diff --git a/result.csv b/result.csv new file mode 100644 index 0000000..265580b --- /dev/null +++ b/result.csv @@ -0,0 +1,15 @@ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,2,3,4,5,6,7,8,9,10,11,12,13,0 +0,2,4,6,8,10,12,0,2,4,6,8,10,12,0 +0,3,6,9,12,1,4,7,10,13,2,5,8,11,0 +0,4,8,12,2,6,10,0,4,8,12,2,6,10,0 +0,5,10,1,6,11,2,7,12,3,8,13,4,9,0 +0,6,12,4,10,2,8,0,6,12,4,10,2,8,0 +0,7,0,7,0,7,0,7,0,7,0,7,0,7,0 +0,8,2,10,4,12,6,0,8,2,10,4,12,6,0 +0,9,4,13,8,3,12,7,2,11,6,1,10,5,0 +0,10,6,2,12,8,4,0,10,6,2,12,8,4,0 +0,11,8,5,2,13,10,7,4,1,12,9,6,3,0 +0,12,10,8,6,4,2,0,12,10,8,6,4,2,0 +0,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0