U E D R , A S I H C RSS

Love Calculator/zyint

소감

처음으로 C++로 해봤다

어흑 시간 너무 걸려따 ㅠㅠ

코드

~cpp 
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <iomanip> //setprecision
#include <ios> //precision

using namespace std;


size_t strlen(const string str);
size_t numlen(size_t num);
string upper(string str);
char upper(char c);
size_t getValue(char c);
size_t getValue(string c);
int make1digit(int a);

int main()
{
	string tmp;
	vector<string> instr;
	
	
	while(cin >> tmp) instr.push_back(tmp);
	
	
	for(vector<string>::iterator i=instr.begin();i digit2? digit2/digit1 : digit1/digit2)*100 << " %" << endl;
		cout << setprecision(pre);
		++i;
	}
	
	
	return 0;
}



size_t strlen(const string str) 
{
	int i=0;
	while(str[i]) ++i;
	return i;
}

size_t numlen(size_t num)
{
	return (size_t)(log10(num)+1);
}


string upper(string str)
{
	int i;
	for(i=0;i<strlen(str);++i)
	{
		if(str[i]>=97 && str[i]<=122) // 소문자 a~z일경우
		{
			str[i] -= 32;
		}
	}
	return str;	
}

char upper(char c)
{
	if(c>=97 && c<=122) // 소문자 a~z일경우
	{
		c -= 32;
	}
	return c;
}

size_t getValue(char c) {
	c=upper(c);
	if(c>=65 && c<=90)
		return c-64;
	else
		return 0;
}


size_t getValue(string c)
{
	int i,sum=0;
	for(i=0;i<strlen(c);++i)
	{
		sum+=getValue(c[i]);	
	}

	return sum;
}

int make1digit(int a)
{
	int i,j,sum=0, jari=1;

	//한자리 일경우 종료
	if(a<10) return a;

	for(i=1;i<numlen(a);++i) jari *= 10;
	for(i=numlen(a);i>=1;--i)
	{
		j=1;
		while( (a - j * jari) >= 0) 
			++j;
		--j;
		a=a-j*jari;
		sum+=j;
		jari/=10;
	}
	return make1digit(sum);	
}

나한테 할 말

오옷~!! 역시 진트.. 무한한 알고리즘의 복잡함에서 저렇게 깔끔한 소스를 만들어내다닛.. 요리왕..아니 소스왕 진트..ㅎ
아앗~ 벌써 C++이야~ 넘흐 대단해 대단해~~>ㅁ<;;
음.. 그래도 클래스가 없다닛~!! 에잇 클래스가 없는 C++은 단팥없는 붕어빵이얏~!(괜히 심술중..ㅎ) ㅋ~
ㅎㅎㅎ 위에줄은 단순히 심술이었구.ㅎ 넘흐 잘해놓으셨엉..ㅎ 함수나누는 능력이 넘흐 좋으셈..ㅎ
그럼 좋은하루 되세용~ㅎ - 조현태
└ 사실;; 아직 클래스 공부는 안해서 쓸줄 모르거덩 ㅋㅋㅋㅋㅋ 그래서 못썼어;; 아직 벡터랑 이런거만 배워서 일단은 저리 해두었엉 ㅠㅠ
함수가 막 나열되어 있어서 좀 보기는 그렇다... 크크-zyint

알파벳에서 숫자가 아닌 문자(alpha = alpha - 'a' +1)로 처리 하였다면 가독성이 좋아지지 않았을까? 그런데, 이건 내 취향일 수도 있지만,.. class로 함수들을 묶어 외부 접근을 못하게 했으면 나중에 소스코드를 재사용하기 훨씬 쉬워졌을텐데. 함수 분류는 현태 말대로 좋은거 같네. (그리고 upper함수는 toupper라고 이미 구현되어 있어.) - 이영호
└ 아!!!!!! 그렇게 하면 되는군요.. 미쳐 생각지 못했습니다.. 단순히 'a' 요렇게만 하면 됐는데 ㅋ 아스키 번호를 생각해내는 수고는 덜필요가 있겠네요
toupper는... 몰랐습니다ㅠㅠ 비주얼어시스트로 upper쳐봤는데 안나와서 걍 만들었어요; MSDN 뒤졌으면 찾아서 썼을텐데~크크ㅠㅠ
위에말대로 클래스는 아직 배우지 않아서;; 배우면 곧 적용시켜야 겠네요^^ 아직 클래스의 위력은 잘 모르겠어서; -zyint

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:40
Processing time 0.0268 sec