공중과열새싹
Biomechanical engineering blog
백준 함수 문제 모음집
728x90

문제 15596.

정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오.

#include <vector>
long long sum(std::vector<int> &a) {
	long long ans = 0;
    for (size_t i = 0; i < a.size(); i++)
    {
        ans += a[i];
    }
	return ans;
}

tip :

size_t는 이론상 가장 큰 사이즈를 담을 수 있는 unsigned data type이다.

이때 정수의 개념이 int로 쓰이는 것은 아님을 알 필요가 있다.

혼용하다가 오버플로우가 일어날 수 있으니 주의.

ex)

32bit머신에서의 unsigned long long 정수형

64bit머신에서의 unsigned long long 정수형

128bit 머신에서의 unsigned long long 정수형

 

 

 

문제 4673.

10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

 

#include <iostream>
using namespace std;
int selfnum(int num)
{
	int sum = num;
	while (1)
	{
		if (num == 0) // 줄일 숫자가 남아있지 않다면
			break; // 탈출하세요.
		sum += num % 10; // 1의 자리 숫자로 sum 값 갱신
		num /= 10; // 자리값 하나씩 줄여나가기.
	}
	return sum;
}

int main()
{
	cin.tie(0);
	ios::sync_with_stdio(0); // 빨리 돌라고
	bool arr[10001] = {0, }; // 참 거짓 판단용. default는 false로 해놓기.
	for (int i = 1; i <= 10000; i++)
	{
		int index = selfnum(i); // 1부터 10000사이 index 값이 존재하다면
		if (index <= 10000)
			arr[index] = true; // 참값으로 갈아치우기.		 
	}
	for (int i = 1; i <= 10000; i++)
	{
		if (arr[i] != true)
			cout << i << "\n"; // 거짓값들 출력
	}
}

자릿수 값을 끌어내는 방법은 반드시 숙지해두자.

배열의 위치와 값을 매칭하기 위해 배열자리를 하나 더 마련해두는 방법도 있다.

 

 

문제 1065.

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.

 

#include <iostream>
using namespace std;
bool hansu(int);

int main()
{
	cin.tie(0);
	ios::sync_with_stdio(0); // 빨리 돌도록
	int a = 0, n; // 카운터, 기준 숫자.
	cin >> n;
	for (int i = 1; i <= n; i++)
		if (hansu(i) == 1) a++;
	cout << a << "\n"; // 총 한수의 개수
	return 0;
}

bool hansu(int n)
{
	if (n < 100) return 1; // 등차수열은 세 자리 이상일 때 푸는 데 조건이 걸린다
	int hu, te, on; // 백의자리 십의자리 일의자리
	hu = n / 100; te = n / 10 % 10; on = n % 10;
	if (hu - te == te - on) return 1; //등차수열을 만족한다면 1리턴
	return 0;
}

 

 

 

 

 

 

 

728x90

'어플리케이션 > C++' 카테고리의 다른 글

백준 1차원 배열 모음집  (0) 2021.05.12
백준 while 문제 모음집  (0) 2021.05.08
백준 for 문제 모음집  (0) 2021.05.03
  Comments,     Trackbacks