본문 바로가기

IT/rust

Rust 학습일지 - 예제

반응형

화씨-섭씨 변환

use std::io;

fn main() {
	
	println!("화씨[F] 섭씨[C]:");
	
	let mut input_value = String::new();
	io::stdin().read_line(&mut input_value)
		.expect("입력실패");
		
	println!("{}",input_value.to_string());

	if input_value.trim().to_string() == "F" {
		println!("화씨온도를 입력하세요");
		input_value = String::new();
		io::stdin().read_line(&mut input_value)
			.expect("입력실패");
		println!("{}",input_value);
		
		let input_value:u32 = input_value.trim().parse()
			.expect("숫자아님");
		
		println!("F {} ->C {}", input_value, (input_value -32) * 5 /9 )

		
	} else if input_value.trim().to_string() == "C" {
		println!("섭씨 온도를 입력하세요");
		input_value = String::new();
		io::stdin().read_line(&mut input_value)
			.expect("입력실패");
		let input_value:u32 = input_value.trim().parse()
			.expect("숫자아님");
		
		println!("C {} ->F {}", input_value, input_value * 9 / 5 + 32 );
		
	}
	
}

- 객체 문자열이니 트림(trim()) 후 to_string 해서 상수값과 비교 해야 했음

- 같은 변수 이름 계속 쓸수 있다고해서 초기화 안했다가 찾기 힘들었음 ( input_value = String::new() 부분 )

 

피보나치 수열

use std::io;

fn main() {
	
	println!("피보나치 수열 생성");
	
	let mut input_value = String::new();
	io::stdin().read_line(&mut input_value)
		.expect("입력실패");
	
	let number: u32 = input_value.trim().parse()
		.expect("숫자아님");
		
/* u32 타입때문에 체크 안해도 됨!		
	if number < 0 {
		std::process::exit(0);
	}
*/		
	println!("{}번째 피보나치 수열 생성",number);
	
	fibonacci(number);

}

fn fibonacci(_math_term_value: u32){
	let mut num = 1;
	let mut prv_num = 1;
	
	print!("{} {} ",prv_num, num);
	
	if _math_term_value >= 3 {
		let mut count = _math_term_value - 2;
		while count > 0 {
			print!("{} ",prv_num+num);
			let temp = num;
			num = prv_num + num;
			prv_num = temp;
			count -= 1;
		}
	}
}

- 임시변수 안쓰고 바꾸는 좀더 우아한? 방법이 있을듯 함..

반응형