한수(백준)

108번뇌·2021년 4월 19일
0
#include <string>
#include <queue>
#include <algorithm>
#include <vector>
#include <iostream>
#include <stdio.h>

using namespace std;

#define MAX_SIZE 1000

int n;


int main()
{
	int Answer = 0;

	cin >> n;

	if(n<100)
	{
		Answer = n;//
	}
	else 
	{
		for (int i = 1; i <= n; i++)
		{
			if (i >= 1000)		break;
			if(i<100)
			{
				Answer++;
			}
			else
			{
				int iTemp = i;
				int Arr[3] = { 0, };
				int j = 0;
				while(iTemp>0)
				{
					int iTemp1 = iTemp % 10;//나머지가져온다
					Arr[j] = iTemp1;//이부분은 등차수열을 구하기 위함입니다.
					j++;
					iTemp = iTemp / 10;	   //10으로 나눈다. 
				}
				if(Arr[0]-Arr[1] == Arr[1]-Arr[2])
				{
					Answer++;
				}
			}
		}
	}


	cout << Answer;


    return 0;
}

이문제는

nt iTemp = i;
				int Arr[3] = { 0, };
				int j = 0;
				while(iTemp>0)
				{
					int iTemp1 = iTemp % 10;//나머지가져온다
					Arr[j] = iTemp1;//이부분은 등차수열을 구하기 위함입니다.
					j++;
					iTemp = iTemp / 10;	   //10으로 나눈다. 
				}
				if(Arr[0]-Arr[1] == Arr[1]-Arr[2])
				{
					Answer++;
				}

이부분이 핵심이다
등차수열의 차이를 구하기 위해 배열 3짜리를 선정했고,
각 자리수를 가져올때 나머지 10을 가져오고(배열에 넣고)
원래수는 원래수 /= 10 을 한다.
동시에 위 배열은 위와같은 행위를 하며 j++ 를 한다.

profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글