1. 程式人生 > >double和long long 的精度對比

double和long long 的精度對比

指數運算

時間限制:600 ms  |  記憶體限制:65535 KB 難度:2
描述
寫一個程式實現指數運算 X^N。(1<X<10,0<N<20)
輸入
輸入包含多行資料 
每行資料是兩個整數X N
資料以EOF結束
輸出
於輸入的每一行輸出X^N的值
樣例輸入
2 1
3 2
樣例輸出
2
9
看起來好簡單,但是用double不過,long long過
double(雙精度浮點型)是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,負值取值範圍為 -1.7976E+308 到 -4.94065645841246544E-324,正值取值範圍為 4.94065645841246544E-324 到 1.797693E+308[1]
也就是說double的精度(15或16位)比long long(19位)位要小
題目中最大值不超過9^19(=1.350851717672992e+18)正好19位。so,,,,,,
 目前程式碼在此:
 
#include<stdio.h>
int main()
{
    long long x,n;
    while(~scanf("%lld%lld",&x,&n))
    {    long long  a=1;
        for(long long i=1;i<=n;i++)
        {
            a=a*x;
        }
        printf("%lld\n",a);
    }
}