U E D R , A S I H C RSS

호너�법칙/조현태

�낀�


문제� 입력� 대한 정확한 설명� 없어서, 대강 소스� 넣었다.
그냥 파ì�¼ë¡œ ìœë ¥í• ê¹Œ 하다가, 어떻게든 반복ì�„ 피해보고ìž� 버í�¼ë¥¼ 넣었ë�”니 ë�” 복잡해졌다.
�... @.@ 파�� 접근� 어렵다는 단��..;;�;;

소스


~cpp 

#include <iostream>
#include <fstream>

using namespace std;

int input[11] = {3,3,3,3,3,3,3,3,3,3,3} ;
const int INPUT_MAX=11;
int x;
int number_of_sum=0;
int number_of_multiply=0;

int Horner(int);

void main()
{
	const int SIZE_OF_LINE=5;
	const int NUMBER_TO_CHAR=48;
	const int SIZE_OF_BLOCK=4;
	cout << "x� 값� 입력해주세요.>>";
	cin >> x;
	ofstream outputFile("aswer.txt");
	char write_temp[SIZE_OF_LINE][8+INPUT_MAX*SIZE_OF_BLOCK];
	for (register int i=0; i<8+INPUT_MAX*4; i++)
		write_temp[0][i]=write_temp[2][i]=write_temp[4][i]='=';
	strcpy(write_temp[1]," |index|");
	strcpy(write_temp[3]," | data|");
	for (register int i=0; i<INPUT_MAX; i++){
		write_temp[1][i*SIZE_OF_BLOCK+8]=write_temp[1][i*SIZE_OF_BLOCK+10]=write_temp[3][i*SIZE_OF_BLOCK+8]=write_temp[3][i*4+10]=' ';
		if (10<=i)
			write_temp[1][i*SIZE_OF_BLOCK+8]=i/10+NUMBER_TO_CHAR;
		write_temp[1][i*SIZE_OF_BLOCK+9]=i%10+NUMBER_TO_CHAR;
		if (10<=input[i])
			write_temp[3][i*SIZE_OF_BLOCK+8]=input[i]/10+NUMBER_TO_CHAR;
		write_temp[3][i*SIZE_OF_BLOCK+9]=input[i]%10+NUMBER_TO_CHAR;
		write_temp[1][i*SIZE_OF_BLOCK+11]=write_temp[3][i*SIZE_OF_BLOCK+11]='|';
	}
	for (register int i=0; i<SIZE_OF_LINE; ++i){
		for (register int j=0; j<8+INPUT_MAX*4; ++j)
			outputFile << write_temp[i][j];
		outputFile << '\n';
	}
	outputFile << "# Horner Function Value ----> "<< Horner(0) << "\n";
	outputFile << "# Horner ADD      Count ----> "<< number_of_sum << "\n";
	outputFile << "# Horner Multiply Count ----> "<< number_of_multiply << "\n";
	outputFile.close();
}

int Horner(int number)
{
	if (INPUT_MAX-1==number)
		return input[number];
	else{
		++number_of_multiply;
		++number_of_sum;
		return Horner(number+1)*x+input[number];
	}
}

저�게 할�~'ㅇ')/


프로그램 �리면 �러가 뜹니다.
1. 먼저 헤� 파�� .h를 붙여 주시고요.
2. strcpy를 �으면 #include <string.h> 헤�파�� �주셔야 할듯.
3. �한 register int i �건 맨처� 한번만 선언해주시고 나머지 i�서는 그냥 i만 �주셔야 할듯 해요. 반복 선언� 좀 무리�듯 .제 짧� 소견�었습니다.-남�연
└ 헤�파� �러나는건 표준�전� 나온 컴파�러(97년 �전)를 �서 그러는� C++표준 헤�는 확장�가 붙지 않습니다. 97년 �후� 나온 컴파�러를 �보세요. - �재�
└ 그렇군요!! 근� 그걸 어디서 구한담;; 난�하네요 ^^;; 조언 �사합니다 ^^ -남�연

register int i를 여러번 쓴 것� 메모리 낭비를 �게하려는 ���었습니다. 그냥 메모리� 아니고 레지스터 메모리를 프로그램 시작부터 �까지 잡고있� 필요는 없�것 같았답니다.^^
그리고 제가 사용한 컴파�러(비주얼 .NET) � 저�게 �하면 미소녀는 무료, �반�� 밥 한�, 미소년� 무한�� FTP나 HTTP로 제공해드리고 있습니다.^^
참고로 올려진 소스들� 모� 정��� 작� 테스트를 거친 뒤였습니다.^^ - 조현태


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:33
Processing time 0.0040 sec