1
0
This commit is contained in:
2026-02-04 11:15:03 +08:00
commit 8b20a5dd21
125 changed files with 4177 additions and 0 deletions

6
problems/p42/Cargo.toml Normal file
View File

@@ -0,0 +1,6 @@
[package]
name = "p42"
version = "0.1.0"
edition = "2024"
[dependencies]

File diff suppressed because one or more lines are too long

50
problems/p42/src/main.rs Normal file
View File

@@ -0,0 +1,50 @@
use std::fs::File;
use std::io::{BufRead, BufReader};
fn get_tri_num(n: u32) -> Vec<u32> {
(1..=n).map(|n| n * (n + 1) / 2).collect()
}
fn get_words() -> Vec<String> {
let file = File::open("./p042_words.txt").unwrap();
let mut reader = BufReader::new(file);
let mut buf: String = String::new();
reader.read_line(&mut buf).unwrap();
let mut words: Vec<String> = Vec::new();
for word in buf.split(',') {
let word = word.trim_matches('"').to_string();
words.push(word);
}
words
}
fn get_word_value(word: &str) -> u32 {
let mut score = 0;
for c in word.chars() {
let c = c.to_ascii_lowercase();
score += (c as u8 - b'a' + 1) as u32;
}
score
}
#[test]
fn test_get_word_value() {
let word = "SKY";
assert_eq!(get_word_value(word), 55);
}
fn main() {
let mut post_200_tri_num = get_tri_num(200);
let words = get_words();
let mut counter = 0;
for word in words {
let score = get_word_value(&word);
if score < post_200_tri_num[post_200_tri_num.len() - 1] && post_200_tri_num.contains(&score)
{
counter += 1;
} else if score > post_200_tri_num[post_200_tri_num.len() - 1] {
println!("extending post_200_tri_num");
post_200_tri_num = get_tri_num(post_200_tri_num.len() as u32 + 100);
}
}
println!("{counter}");
}

View File

@@ -0,0 +1,12 @@
0.081616178s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: stale: changed "/home/sangge/code/projecteuler/problems/p42/src/main.rs"
0.081635313s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: (vs) "/home/sangge/code/projecteuler/target/debug/.fingerprint/p42-80c1bd638c3b3d7c/dep-bin-p42"
0.081639852s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: FileTime { seconds: 1768800096, nanos: 937131814 } < FileTime { seconds: 1768800107, nanos: 228856355 }
0.081684905s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: fingerprint dirty for p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42)/Check { test: false }/TargetInner { name: "p42", doc: true, ..: with_path("/home/sangge/code/projecteuler/problems/p42/src/main.rs", Edition2024) }
0.081696056s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: dirty: FsStatusOutdated(StaleItem(ChangedFile { reference: "/home/sangge/code/projecteuler/target/debug/.fingerprint/p42-80c1bd638c3b3d7c/dep-bin-p42", reference_mtime: FileTime { seconds: 1768800096, nanos: 937131814 }, stale: "/home/sangge/code/projecteuler/problems/p42/src/main.rs", stale_mtime: FileTime { seconds: 1768800107, nanos: 228856355 } }))
0.081861673s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: stale: changed "/home/sangge/code/projecteuler/problems/p42/src/main.rs"
0.081866662s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: (vs) "/home/sangge/code/projecteuler/target/debug/.fingerprint/p42-eca59544334dcad0/dep-test-bin-p42"
0.081870159s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: FileTime { seconds: 1768800096, nanos: 937131814 } < FileTime { seconds: 1768800107, nanos: 228856355 }
0.081897239s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: fingerprint dirty for p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42)/Check { test: true }/TargetInner { name: "p42", doc: true, ..: with_path("/home/sangge/code/projecteuler/problems/p42/src/main.rs", Edition2024) }
0.081903922s INFO prepare_target{force=false package_id=p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42) target="p42"}: cargo::core::compiler::fingerprint: dirty: FsStatusOutdated(StaleItem(ChangedFile { reference: "/home/sangge/code/projecteuler/target/debug/.fingerprint/p42-eca59544334dcad0/dep-test-bin-p42", reference_mtime: FileTime { seconds: 1768800096, nanos: 937131814 }, stale: "/home/sangge/code/projecteuler/problems/p42/src/main.rs", stale_mtime: FileTime { seconds: 1768800107, nanos: 228856355 } }))
Checking p42 v0.1.0 (/home/sangge/code/projecteuler/problems/p42)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.12s

View File

@@ -0,0 +1,3 @@
{"reason":"compiler-artifact","package_id":"path+file:///home/sangge/code/projecteuler/problems/p42#0.1.0","manifest_path":"/home/sangge/code/projecteuler/problems/p42/Cargo.toml","target":{"kind":["bin"],"crate_types":["bin"],"name":"p42","src_path":"/home/sangge/code/projecteuler/problems/p42/src/main.rs","edition":"2024","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":1,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sangge/code/projecteuler/target/debug/deps/libp42-80c1bd638c3b3d7c.rmeta"],"executable":null,"fresh":false}
{"reason":"compiler-artifact","package_id":"path+file:///home/sangge/code/projecteuler/problems/p42#0.1.0","manifest_path":"/home/sangge/code/projecteuler/problems/p42/Cargo.toml","target":{"kind":["bin"],"crate_types":["bin"],"name":"p42","src_path":"/home/sangge/code/projecteuler/problems/p42/src/main.rs","edition":"2024","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":1,"debug_assertions":true,"overflow_checks":true,"test":true},"features":[],"filenames":["/home/sangge/code/projecteuler/target/debug/deps/libp42-eca59544334dcad0.rmeta"],"executable":null,"fresh":false}
{"reason":"build-finished","success":true}