编写C++程序求一个问题!急求!!!
答案:2 悬赏:80 手机版
解决时间 2021-02-08 05:56
- 提问者网友:鼻尖触碰
- 2021-02-07 11:45
核反应堆有α和β两种粒子,每秒钟一个阿尔法粒子可以裂变成3个β粒子,而一个β粒子可以裂变为一个α粒子和2个β粒子,若在t=0时刻的反应堆中只有一个α粒子,求在t秒时反应贵裂变产生的α粒子数和β粒子数!
最佳答案
- 五星知识达人网友:怙棘
- 2021-02-07 13:02
#include <iostream> #include <string.h> using namespace std; bool a[111][111]; int f[111][111], x[11111], y[11111]; int n, m; int i, j, k, p, q, s, t; char ch; inline void push(const int u, const int v) { if (!a[u][v]) a[u][v] = true, x[++k] = u, y[k] = v, f[u][v] = i; } int main() { cin >> n >> m; memset(a, 1, sizeof a); for (i = 1; i <= n; ++i) for (j = 1; j <= m; ++j) { cin >> ch; if (ch == 's') *x = i, *y = j; else if (ch == 't') a[i][j] = false, p = i, q = j; else a[i][j] = ch == '#'; } memset(f, 127, sizeof f), f[*x][*y] = 0; for (j = -1, k = 0; j < k; ) { s = x[++j], t = y[j]; i = f[s][t] + 1; push(s - 1, t), push(s + 1, t); push(s, t - 1), push(s, t + 1); } cout << f[p][q] << endl; return 0; }
全部回答
- 1楼网友:患得患失的劫
- 2021-02-07 14:11
class lz
{
public:
int a;
int b;
lz():a(0),b(0){}
lz(int x,int y):a(x),b(y){}
friend ostream& operator<<(ostream& os,const lz& l)
{
os<<l.a<<" "<<l.b<<endl;
return os;
}
};
int main()//(int argc,char* argv[])
{
const int N=1000;
lz cnt[N];
cnt[0]={1,0};
for(int i=1;i!=N;++i)
{
cnt[i].a=cnt[i-1].b;
cnt[i].b=cnt[i-1].a*3+cnt[i-1].b*2;
}
int n=0;
while(cin>>n)
cout<<cnt[n];
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯