Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate libc; // 0.2.43
- use libc::putchar;
- fn main() {
- draw_table(2);
- draw_table(5);
- draw_table(10);
- }
- fn draw_table(num: usize) {
- let sum = num * num;
- let num_digits = count_digits(sum);
- for ref row in 0..=num {
- for ref col in 0..=num {
- let cur_sum = row * col;
- unsafe {
- for _i in 0..=(num_digits - count_digits(cur_sum)) {
- putchar(32);
- }
- print_number(cur_sum);
- if col < &num {
- putchar(',' as i32);
- }
- }
- }
- unsafe {
- putchar(10);
- }
- }
- }
- fn count_digits(mut num: usize) -> u32 {
- let mut count: u32 = 0;
- if num != 0 {
- while num > 0 {
- num /= 10;
- count += 1;
- }
- } else {
- count = 1;
- }
- count
- }
- fn print_number(num: usize) {
- if num >= 10 {
- print_number(num / 10);
- }
- unsafe {
- putchar((num % 10) as i32 + 48);
- }
- }
Add Comment
Please, Sign In to add comment