Problem Description
这是一个从天上掉下来的题面
天才科学家小标今天找到了一个史莱姆窝,小铁研究了好几天,发现史莱姆的史莱姆个数在不断的增长,而且史莱姆个数的增长情况有如下的规律
每一个史莱姆在第二天分裂成为a个崭新的史莱姆
现在小标知道了第一天的史莱姆正好也为a个,他想知道第n天的时候的史莱姆会有多少个,你能帮帮他吗?
Input
多组输入,每组两个整数a,n。分别代表史莱姆的初始个数和天数
Output
第n天的时候的史莱姆的个数
Sample Input
5 2
2 3
Sample Output
25
8
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,n;
while(scanf("%d %d",&a,&n)!=EOF)
{
double m=pow(a,n);
printf("%d\n",(int)m);
}
return 0;
}
接下来是错误代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,n,m;
while(scanf("%d %d",&a,&n)!=EOF)
{
m=pow(a,n);
printf("%d\n",m);
}
return 0;
}
这样写会导致5的平方等于24?为啥?因为pow的返回值是个小数,可能是24.99999999,如果你直接赋值给整型变量,会导致直接失去0.9999999;导致缺失一个数。