chore: book/ch1 add std
This commit is contained in:
parent
e3cd843249
commit
7dcf8f5b7b
@ -9,6 +9,21 @@
|
||||
"Lang" : "cpp",
|
||||
"Judge": {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
||||
"Runtime": {"Run": {"TimeLimit": 1000, "MemoryLimit": 16, "NProcLimit": 1}}
|
||||
},
|
||||
{
|
||||
"Lang" : "python3",
|
||||
"Judge" : {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
||||
"Runtime": {"Run": {"TimeLimit": 2000, "MemoryLimit": 16, "NProcLimit": 1}}
|
||||
},
|
||||
{
|
||||
"Lang" : "pypy3",
|
||||
"Judge" : {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
||||
"Runtime": {"Run": {"TimeLimit": 2000, "MemoryLimit": 128, "NProcLimit": 1}}
|
||||
},
|
||||
{
|
||||
"Lang" : "rust",
|
||||
"Judge" : {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
||||
"Runtime": {"Run": {"TimeLimit": 1000, "MemoryLimit": 16, "NProcLimit": 1}}
|
||||
}
|
||||
],
|
||||
"Tasks" : [
|
||||
|
46
resource/runner/problem/book/ch1/1. factorial/std/ans.cpp
Normal file
46
resource/runner/problem/book/ch1/1. factorial/std/ans.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
#define LEN 1000
|
||||
|
||||
int a[LEN], c[LEN];
|
||||
|
||||
void clear(int a[]) {
|
||||
for (int i = 0; i < LEN; ++i) a[i] = 0;
|
||||
}
|
||||
|
||||
void print(int a[]) {
|
||||
int i;
|
||||
for (i = LEN - 1; i >= 1; --i)
|
||||
if (a[i] != 0) break;
|
||||
for (; i >= 0; --i) putchar(a[i] + '0');
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
void mul(int a[], int b, int c[]) {
|
||||
clear(c);
|
||||
for (int i = 0; i < LEN - 1; ++i) {
|
||||
c[i] += a[i] * b;
|
||||
if (c[i] >= 10) {
|
||||
c[i + 1] += c[i] / 10;
|
||||
c[i] %= 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
clear(a), clear(c);
|
||||
scanf("%d", &n);
|
||||
|
||||
a[0] = 1;
|
||||
int *p1 = a, *p2 = c;
|
||||
|
||||
for (int i = 2; i <= n; ++i) {
|
||||
mul(p1, i, p2);
|
||||
std::swap(p1, p2);
|
||||
}
|
||||
|
||||
print(p1);
|
||||
|
||||
return 0;
|
||||
}
|
5
resource/runner/problem/book/ch1/1. factorial/std/ans.py
Normal file
5
resource/runner/problem/book/ch1/1. factorial/std/ans.py
Normal file
@ -0,0 +1,5 @@
|
||||
n = int(input().strip())
|
||||
a = 1
|
||||
for i in range(1, n + 1):
|
||||
a *= i
|
||||
print(a)
|
36
resource/runner/problem/book/ch1/1. factorial/std/ans.rs
Normal file
36
resource/runner/problem/book/ch1/1. factorial/std/ans.rs
Normal file
@ -0,0 +1,36 @@
|
||||
use std::io;
|
||||
|
||||
// Powered by Github Copilot :)
|
||||
|
||||
fn factorial(n: u64) -> Vec<u64> {
|
||||
let mut result = vec![1];
|
||||
for i in 2..=n {
|
||||
let mut carry = 0;
|
||||
for num in &mut result {
|
||||
*num = *num * i + carry;
|
||||
carry = *num / 10;
|
||||
*num %= 10;
|
||||
}
|
||||
while carry > 0 {
|
||||
result.push(carry % 10);
|
||||
carry /= 10;
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
fn print_factorial(result: Vec<u64>) {
|
||||
for num in result.iter().rev() {
|
||||
print!("{}", num);
|
||||
}
|
||||
println!();
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut input = String::new();
|
||||
io::stdin().read_line(&mut input).unwrap();
|
||||
let n: u64 = input.trim().parse().unwrap();
|
||||
|
||||
let result = factorial(n);
|
||||
print_factorial(result);
|
||||
}
|
Loading…
Reference in New Issue
Block a user