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 型存储
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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;
}
本人还是新手 ,转载请注明来自Lvsi‘s home