LeeBlog

导航

HDU 2085 核反应堆

此题找出关系即可

设n微秒时a( n ) 为高能粒子个数,b ( n )为低能粒子个数;

  经分析可得 a ( n ) = 3 * a( n - 1 ) + 2 * b ( n - 1 ), b ( n ) = a ( n - 1 ) + b ( n - 1 );

然后直接打表即可,还有要注意要用long long 型存储

代码
#include <stdio.h>
long long ch[ 35 ][ 2 ];
void chart ( )
{
long long a,b,c;//a表示高能粒子,b表示低能粒子,c记录上次的高能粒子
int i = 1;
ch[
0][0] = 1;
ch[
0][1] = 0;
for ( a = 1 , b = 0 , c = 1; i < 35 ; ++i )
{
a
= 3 * a + 2 * b;
b
= c + b;
c
= a;
ch[ i ][
0 ] = a;
ch[ i ][
1 ] = b;
}
}
int main ( )
{
chart( );
int n;
while ( scanf ( "%d" , &n ) == 1 && n != -1 )
printf (
"%I64d, %I64d\n" , ch[n][0],ch[n][1] );
return 0;
}

 

posted on 2011-01-30 15:27  LeeBlog  阅读(258)  评论(0编辑  收藏  举报