添加"腔骨龙" 用户应用程序
parent
63e556a858
commit
b78f32e476
@ -0,0 +1,28 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate user_lib;
|
||||||
|
|
||||||
|
const LEN: usize = 100;
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
fn main() -> i32 {
|
||||||
|
let p = 3u64;
|
||||||
|
let m = 998244353u64;
|
||||||
|
let iter: usize = 200000;
|
||||||
|
let mut s = [0u64; LEN];
|
||||||
|
let mut cur = 0usize;
|
||||||
|
s[cur] = 1;
|
||||||
|
for i in 1..=iter {
|
||||||
|
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
|
||||||
|
s[next] = s[cur] * p % m;
|
||||||
|
cur = next;
|
||||||
|
if i % 10000 == 0 {
|
||||||
|
println!("power_3 [{}/{}]", i, iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("{}^{} = {}(MOD {})", p, iter, s[cur], m);
|
||||||
|
println!("Test power_3 OK!");
|
||||||
|
0
|
||||||
|
}
|
@ -1,20 +0,0 @@
|
|||||||
#![no_std]
|
|
||||||
#![no_main]
|
|
||||||
|
|
||||||
use user_lib::{syscall::*, *};
|
|
||||||
|
|
||||||
const WIDTH: usize = 10;
|
|
||||||
const HEIGHT: usize = 5;
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
fn main() -> i32 {
|
|
||||||
for i in 0..HEIGHT {
|
|
||||||
for _ in 0..WIDTH {
|
|
||||||
print!("A");
|
|
||||||
}
|
|
||||||
println!(" [{}/{}]", i + 1, HEIGHT);
|
|
||||||
sys_yield();
|
|
||||||
}
|
|
||||||
println!("Test write_a OK!");
|
|
||||||
0
|
|
||||||
}
|
|
@ -0,0 +1,28 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate user_lib;
|
||||||
|
|
||||||
|
const LEN: usize = 100;
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
fn main() -> i32 {
|
||||||
|
let p = 5u64;
|
||||||
|
let m = 998244353u64;
|
||||||
|
let iter: usize = 140000;
|
||||||
|
let mut s = [0u64; LEN];
|
||||||
|
let mut cur = 0usize;
|
||||||
|
s[cur] = 1;
|
||||||
|
for i in 1..=iter {
|
||||||
|
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
|
||||||
|
s[next] = s[cur] * p % m;
|
||||||
|
cur = next;
|
||||||
|
if i % 10000 == 0 {
|
||||||
|
println!("power_5 [{}/{}]", i, iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("{}^{} = {}(MOD {})", p, iter, s[cur], m);
|
||||||
|
println!("Test power_5 OK!");
|
||||||
|
0
|
||||||
|
}
|
@ -1,20 +0,0 @@
|
|||||||
#![no_std]
|
|
||||||
#![no_main]
|
|
||||||
|
|
||||||
use user_lib::{syscall::*, *};
|
|
||||||
|
|
||||||
const WIDTH: usize = 10;
|
|
||||||
const HEIGHT: usize = 2;
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
fn main() -> i32 {
|
|
||||||
for i in 0..HEIGHT {
|
|
||||||
for _ in 0..WIDTH {
|
|
||||||
print!("B");
|
|
||||||
}
|
|
||||||
println!(" [{}/{}]", i + 1, HEIGHT);
|
|
||||||
sys_yield();
|
|
||||||
}
|
|
||||||
println!("Test write_b OK!");
|
|
||||||
0
|
|
||||||
}
|
|
@ -0,0 +1,28 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate user_lib;
|
||||||
|
|
||||||
|
const LEN: usize = 100;
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
fn main() -> i32 {
|
||||||
|
let p = 7u64;
|
||||||
|
let m = 998244353u64;
|
||||||
|
let iter: usize = 160000;
|
||||||
|
let mut s = [0u64; LEN];
|
||||||
|
let mut cur = 0usize;
|
||||||
|
s[cur] = 1;
|
||||||
|
for i in 1..=iter {
|
||||||
|
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
|
||||||
|
s[next] = s[cur] * p % m;
|
||||||
|
cur = next;
|
||||||
|
if i % 10000 == 0 {
|
||||||
|
println!("power_7 [{}/{}]", i, iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("{}^{} = {}(MOD {})", p, iter, s[cur], m);
|
||||||
|
println!("Test power_7 OK!");
|
||||||
|
0
|
||||||
|
}
|
@ -1,20 +0,0 @@
|
|||||||
#![no_std]
|
|
||||||
#![no_main]
|
|
||||||
|
|
||||||
use user_lib::{syscall::*, *};
|
|
||||||
|
|
||||||
const WIDTH: usize = 10;
|
|
||||||
const HEIGHT: usize = 3;
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
fn main() -> i32 {
|
|
||||||
for i in 0..HEIGHT {
|
|
||||||
for _ in 0..WIDTH {
|
|
||||||
print!("C");
|
|
||||||
}
|
|
||||||
println!(" [{}/{}]", i + 1, HEIGHT);
|
|
||||||
sys_yield();
|
|
||||||
}
|
|
||||||
println!("Test write_c OK!");
|
|
||||||
0
|
|
||||||
}
|
|
@ -0,0 +1,18 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate user_lib;
|
||||||
|
|
||||||
|
use user_lib::syscall::{sys_get_time, sys_yield};
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
fn main() -> i32 {
|
||||||
|
let current_timer = sys_get_time();
|
||||||
|
let wait_for = current_timer + 3000;
|
||||||
|
while sys_get_time() < wait_for {
|
||||||
|
sys_yield();
|
||||||
|
}
|
||||||
|
println!("Test sleep OK!");
|
||||||
|
0
|
||||||
|
}
|
Loading…
Reference in New Issue