读书人

某核反应堆有两类事件发生1高能质子撞

发布时间: 2012-04-28 11:49:53 作者: rapoo

某核反应堆有两类事件发生1高能质子撞击核子,质子被吸收,放出3个高能质子一个低能质子,低能质子撞击核子,质子被吸收,放出2个高能质子和一个低能质子。
假定开始时只有一个高能质子摄入反应堆,每一微秒一起一个事件发生,(对一个事件,当前所有的质子都会撞击核子),是确定N微秒时高能质子和低能质子个数?
条件是递归原理,顺序循环分支语句,函数。这3个参数。
#include<stdio.h>
main()
{
int i,n;
double g=0,d=0,s=0;
printf("请输入一个正整数:");
scanf("%d",&n);
if(n==1)
{g=3;d=1;s=4;}
else
g=3;d=1;s=4;
for(i=2;i<=n;i++)
{g=3*g+2*d;
d=s;
s=g+d;}
printf("%.0lf %.0lf %.0lf\n",g,d,s);
}


[解决办法]
多此一举的递归算法:

C/C++ code
#include<stdio.h>void fun(double g, double d, int n){    if (n==0)        printf("%.0lf %.0lf %.0lf\n",g,d,g+d);    else        fun(3*g+2*d,g+d,n-1);}main(){    int i,n;    double g=1,g2,d=0;      /*刚开始只有一个高能质子*/    printf("请输入一个正整数:");    scanf("%d",&n);    fun(1,0,n);} 

读书人网 >C++

热点推荐