U E D R , A S I H C RSS

피보나치/조현태

Describe 피보나치/조현태 here.
~cpp 
#include <iostream> 
using namespace std; 


int fibonacci1( int prv_answer,int sub_answer, int number )
{
	//피보나치를 연산합니다.재귀호출식
	if( number!=0)
		prv_answer=fibonacci1(sub_answer+prv_answer, prv_answer, number-1 );

	return prv_answer;
}

void prin(unsigned int num, unsigned int prv_answer )
{
         //그냥 출력
	cout << num <<"번째 값은 "<< prv_answer <<"입니다.\n";
}

void fibonacci2( unsigned int prv_answer,unsigned int sub_answer, unsigned int number, int call)
{
         //안제귀호출..
	unsigned int num=1;
	while (number!=0) 
	{
		unsigned int temp=sub_answer;
		sub_answer=prv_answer;
		prv_answer=temp+sub_answer;
		--number;
		++num;
		if (0==call && number>0)
			prin (num, prv_answer);
	}
	prin (num, prv_answer);
}

void main()
{
	//메인함수- 값을 입력받고 출력하는 역활을 합니다.
	unsigned int number;
	int call;
	/*while (1)
	{
		cin >> number;
		//cout << fibonacci1( 1 , 0 , number-1) << "\n";
		cout << fibonacci2( 1 , 0 , number-1) << "\n";
	}*/
	cout << "피보나치 수열을 출력하는 프로그램입니다.\n 몇번째 숫자를 출력하시겠습니까?";
	cin >> number;
	cout << number <<"번째 숫자까지의 값을 출력하겠습니까?(1.예 2.아니오)";
	cin >> call;
	fibonacci2( 1 , 0 , number-1, call-1);
}
두번째 꺼는 아직 리펙토링이 되지 않았습니다.^^; 양해해주세요.

이번엔 파이썬으로 ..ㅎㅎ
~cpp 

def pibo( n ):
    #싸구려 느린연산
    if n<2:
        return n
    return pibo( n-1)+pibo(n-2)


def fibo( number ):
    #빠른연산
    number=number-1
    prv_answer=1
    sub_answer=0
    while number!=0:
        temp=sub_answer
        sub_answer=prv_answer
        prv_answer=sub_answer+temp
        number=number-1
    print prv_answer
        
if __name__ == '__main__':
    t= int (raw_input('느린연산 숫자를 입력해주세요>>'))
    k=pibo( t )
    print k
    t= int (raw_input('빠른연산 숫자를 입력해주세요>>'))
    fibo( t )


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