0319 자료구조 수업일지

캐모마일·2024년 4월 4일

수업일지

목록 보기
8/9

오늘으,ㄴ 문제를 잔뜩풀었다람쥐

3문장 출력하기

#include <iostream>

using namespace std;

int main() {
	cout << "9 * 9 = 81\n";
	cout << "원주율은 3.1415926535입니다\n";
	cout << "선생님이 말했어. "<< '"' << "공부는 기세야" << '"';
}

a b 입력받아 a +b / a - b 반올림 소수점 둘째자리 출력하기

#include <iostream>
using namespace std;

int main() {
	int a, b;
	cin >> a >> b;

	float answer = (float)(a + b) / (a - b);

	answer *= 100;
	answer += 0.5;
	answer = (int)answer;
	answer /= 100;
	cout << answer;
}

19세 이상이면서 남자인 사람이 한명이라도 있다면 1을 출력

#include <iostream>

using namespace std;

int main() {
	int age[2];
	char sex[2];
	bool haveM = false;

	for (int i = 0; i < 2; i++) {
		cin >> age[i] >> sex[i];
	}

	for (int i = 0; i < 2; i++) {
		if (age[i] >= 19 && sex[i] == 'M' && haveM == false) {
			cout << 1;
			haveM = true;
		}
	}

	if (haveM == false) cout << 0;
}

1부터 b까지의 수 중 a 의 배수들의 곱을 구하는 문제

#include <iostream>

using namespace std;
int main() {
	int a, b, sum = 1;
	cin >> a >> b;
	for (int i = 1; i <= b; i++) {
		if (i % a == 0) sum *= i;
	}
	cout << sum;
}

n이 주어졌을 때 n을 1,2,3 차례대로 나누어 1 이하가 되는 순간까지의 횟수

#include <iostream>

using namespace std;
int main() {
	int n;
	int cnt = 1;
	cin >> n;

	while (true) {
		++cnt;
		n /= cnt;
		if (n <= 1) break;
	}

	cout << cnt;
}

n의 값이 짝수라면 3을 곱하고 1을 더함
홀수라면 2를 곱하고 2를 더함
1000 이상이 될 때 cnt의 값

#include <iostream>

using namespace std;
int main() {
	int n;
	int cnt = 0;
	cin >> n;

	for (cnt; n <= 1000; cnt++) {
		if (n % 2 == 0) n = n * 3 + 1;
		else n = n * 2 + 2;
	}

	cout << cnt;
}

a이상 b이하의 수 중 1920 , 2880의 공약수가 있는지 판단

#include <iostream>

using namespace std;
int main() {
	int a, b;
	cin >> a >> b;
	bool 있음 = false;
	for (int i = a; i <= b; i++) {
		if (1920 % i == 0 && 2880 % i == 0) 있음 = true;
	}

	if (있음) cout << 1;
	else cout << 0;
}

1이상 n이하의 소수를 오름차순 출력

#include <iostream>

using namespace std;

void IsPrime(int n);

int main() {
	int n;
	cin >> n;
	IsPrime(n);
}

void IsPrime(int n) {
	for (int i = 2; i <= n; i++) {
		int cnt = 0;
		for (int j = 1; j <= i; j++) {
			if (i % j == 0) cnt++;
		}
		if (cnt <= 2) cout << i << " ";
	}
	
}

n개의 숫자 주어짐 서로 다른숫자 차가 가장 작은걸출력

#include <iostream>
#include <vector>
using namespace std;


int main() {
	int n;
	vector<int> arr;
	int min = 55555;

	cin >> n;

	for (int i = 0; i < n; i++) {
		int a;
		cin >> a;
		arr.push_back(a);
	}

	for (int i = 0; i < arr.size(); i++) {
		for (int j = 0; j < arr.size(); j++) {
			if (i == j) continue;
			if ((arr[i] - arr[j]) < min && arr[i] - arr[j] >= 0) min = (arr[i] - arr[j]);
		}
	}

	cout << min;
}

공백을 포함한 문자열이 입력되었을떄 공백제외 다시출력

#include <iostream>
#include <string>
using namespace std;


int main() {
	string a, b, answer = "";
	getline(cin, a);
	getline(cin, b);
	for (int i = 0; i < a.length(); i++) {
		if (a[i] == ' ') continue;
		answer += a[i];
	}
	for (int i = 0; i < b.length(); i++) {
		if (b[i] == ' ') continue;
		answer += b[i];
	}

	cout << answer;
}

알파벳과 숫자로 이루어진 문자열 두개가 주어지면 각각 숫자를 이어붙인다음 합쳐서 출력

#include <iostream>
#include <string>
using namespace std;


int main() {
	string a, b, 이어붙인숫자;
	int answer = 0;

	cin >> a >> b;

	for (int i = 0; i < a.length(); i++) {
		if (a[i] >= '0' && a[i] <= '9') 이어붙인숫자 += a[i];
	}

	answer += stoi(이어붙인숫자);
	이어붙인숫자 = "";
	for (int i = 0; i < b.length(); i++) {
		if (b[i] >= '0' && b[i] <= '9') 이어붙인숫자 += b[i];
	}

	answer += stoi(이어붙인숫자);

	cout << answer;
}

소문자 알파벳이 하나 주어지면 그 전 소문자 출력, a는 z로

#include <iostream>
#include <string>
using namespace std;


int main() {
	char a;
	cin >> a;
	if (a == 'a') {
		cout << 'z';
		return 0;
	}
	cout << (char)(a - 1);

}

영문자 a , 정수 b가 주어지면 a에 해당하는 아스키코드 번호와 b에 대항하는 아스키코드 문자 출력

#include <iostream>
#include <string>
using namespace std;


int main() {
	char a;
	int b;
	cin >> a >> b;
	cout << (int)a << " " << (char)b;

}

a가 주어지면 재귀함수로 1부터 a까지의 합을 구한 후 출력

#include <iostream>
#include <string>
using namespace std;

int Fibona(int num);
int answer = 0;
int main() {
	int a;
	cin >> a;
	answer += Fibona(a);
	cout << answer;
}

int Fibona(int num) {
	if (num <= 0) return 0;
	answer += num;
	Fibona(num - 1);
}

n을 입력받아 별 출력을 5 4 3 2 1 1 2 3 4 5로 하기

#include <iostream>
using namespace std;
int ban(int n) {
	int b = n;
	if (b == 0) return 0;
	for (int i = 0; i < n; i++) {
		cout << "*";
	}
	cout << endl;
	 
	ban(n - 1);

	for (int i = 0; i < n; i++) {
		cout << "*";
	}
	cout << endl;
}

int main() {
	ban(5);
}

0개의 댓글