Go to file
2024-11-04 02:14:28 +09:00
test can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
vm can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
.gitignore Initial commit 2024-11-03 06:23:29 +09:00
asm.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
assert.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
com.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
dat.h add || && 2024-11-03 16:28:52 +09:00
decl.c first commit 2024-11-03 06:24:26 +09:00
dis.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
exports.c first commit 2024-11-03 06:24:26 +09:00
file.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
fn.h can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
gen.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
isa.h can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
lex.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
main.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
makefile can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
node.c first commit 2024-11-03 06:24:26 +09:00
parse.c can run fibonacci sequence, nqueen 2024-11-04 02:11:36 +09:00
README.md add readme 2024-11-04 02:14:28 +09:00
type.c first commit 2024-11-03 06:24:26 +09:00
yo.h first commit 2024-11-03 06:24:26 +09:00

yo-compiler

package main

type Any struct {
	x,y int;
	arr [8]int;
};

fn main() int {
	arr := [8]int{};
	return nqueen(0, 0, arr[:]);
};

fn fib(n int) int{
	if n <= 1 {
		return n;
	};
	return fib(n-1) + fib(n-2);
};

fn nqueen(r,ans int, arr []int) int{
	if r == len(arr) {
		return ans + 1;
	};
	for c:=0; c < len(arr); c=c+1{
		arr[r] = c;
		if canput(r, arr) {
			ans = nqueen(r+1, ans, arr);
		};
	};
	return ans;
};

fn canput(r int, arr []int) bool {
	for i:=0; i < r; i=i+1 {
		if arr[r] == arr[i] || abs(arr[r] - arr[i]) == abs(r - i) {
			return false;
		};
	};
	return true;
};

fn abs(x int) int {
	if x < 0 {
		return x * -1;
	};
	return x;
};