chore: book/ch1 add std
This commit is contained in:
parent
e3cd843249
commit
7dcf8f5b7b
@ -9,6 +9,21 @@
|
|||||||
"Lang" : "cpp",
|
"Lang" : "cpp",
|
||||||
"Judge": {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
"Judge": {"Type": "default", "Script": "", "Cmp": "HCMP"},
|
||||||
"Runtime": {"Run": {"TimeLimit": 1000, "MemoryLimit": 16, "NProcLimit": 1}}
|
"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" : [
|
"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