基因变异(codevs 3194)
题目描述 Description
小毛终于来到了冥王星,这是一颗已经不属于行星的矮行星,它的表面温度低于-220度。在这里,小毛惊奇的发现,他带来的厌氧菌开始了基因变异,裂变的速度与光照时间(秒)成乘积关系,公式如下:细菌个数=原个数*时间(秒),而如果关闭照明,则细菌停止繁殖裂变。现在已知n个细菌,经过m段光照时间后,一共有多少个细菌呢?
输入描述 Input Description
第一行为两个整数N,M(均小于1000),第2行为m个时间段的时间(均小于10000)。
输出描述 Output Description
仅一个正整数,表示最后的细菌个数。
样例输入 Sample Input
4 3
100 20 3
样例输出 Sample Output
24000
/* 一个高精度,难为了自己很长时间,最后用的题解的输出格式,不大明白 */ #include<cstdio> #include<iostream> #include<cstring> #define M 100010 using namespace std; long long a[M]; int main() { int m,n; scanf("%d%d",&n,&m); a[0]=n; for(int T=1;T<=m;T++) { int x; scanf("%d",&x); for(int i=0;i<=501;i++) a[i]=a[i]*x; for(int i=0;i<=501;i++) { if(a[i]>=100000000) { a[i+1]+=a[i]/100000000; a[i]%=100000000; } } } int len; for(int i=501;i>=0;i--) if(a[i]>0) { len=i; break; } printf("%d",a[len]); for(int i=len-1;i>=0;i--) printf("%08d",a[i]); return 0; }