Math pow i,3 與i i i的區別是什麼呀

2021-03-10 14:50:17 字數 1449 閱讀 4798

1樓:gta小雞

math.pow()做的是浮點數運算,返回的是浮點數結果,由於浮點數的原理問題,結果與實際值可能有微小的偏差。計算整數的三次冪,永遠用i*i*i,而不要用pow()函式。

2樓:匿名使用者

i*i*i,因為i是int型,所以返回值應該為int,根據下面的**可以知道int型的最大數為2147483647,而1000至10000以內第一個符合條件的數是5001,5001*5001*5001,估算為5000*5000*5000=125000000000,已經溢位了

math.pow(i, 3),返回double型,最大數為1.7976931348623157e308,e308表示10的308次方,明顯不會溢位,所以結果輸出正常

綜上,i*i*i和math.pow表示的算術含義是一樣的,但是由於精度問題,計算結果可能會有不同

public static void main(string args)

integer.min_value = -2147483648

integer.max_value = 2147483647

long.min_value = -9223372036854775808

long.max_value = 9223372036854775807

float.min_value = 1.4e-45

float.min_normal = 1.17549435e-38

float.max_value = 3.4028235e38

double.max_value = 1.7976931348623157e308

double.min_value = 4.9e-324

c語言問題。 *p+i與*(p+i)有什麼區別啊?

3樓:匿名使用者

寫個c程式解釋吧。

#include

int main()

, *p = a;

printf("%d %d\n", *p + 1, *(p + 3));

return 0;

}輸出為 10 6;

為什麼呢?因為 *p = a 把 a 陣列的首地址的值放在 p 處,所以p = a,*p =a[0]= 9 => *p + 1 = 9 + 1 = 10.

p + 3 就是a陣列的首地址往後移動3位,即p = a[0], p + 3 = a[3]的值,就是6了。

4樓:匿名使用者

其實在定義時你這樣理解就很清楚答案了:

char *p;理解成char (*p);*p在一起是一個char。那麼,*p+i就是*p的值加上i,而*(p+i)是在先p+i再*操作,*是什麼意思呢,在這裡是「取值」。所以,*(p+i)是把指標移動i個位置,再返回前地址的值。

5樓:匿名使用者

地址加i,地址變了。地址

c語言13x與x3區別有什麼不同

t x 與 t x,問題描述的不是bai很du清楚,是不是使用在形zhi 如這樣的函式 int fun t x,t x1 中,dao如果是這樣的話版,x1,是個引用,假如我們對fun進行傳權引數,形如fun a,b 那麼在fun函式體內讀寫x變數的話就是讀寫fun函式棧中的某一元素,對x1讀寫是對傳...

find out與discover的具體區別

find out 一般是發現什麼事實真相,後面跟從句.discover 一般是指發現上些以前不知道的東西,比如科學上的發現.還有個也很相近是find 但是比較簡單 find 一般是發現人,物,後面跟名詞.discover 指 發現 某種本來存在,而以前未被發現的事物或未為人所知的東西。columbu...

街舞中popping與locking的區別

breaking 技巧型街舞,要求舞者具有較高的力量 柔韌性和協調性,屬於技巧性較高的體育舞蹈,所以最先為國內青少年所喜愛。跳這種型別舞蹈的青少年叫做b boy b girl。20世紀80年代,被稱為 hip hop之父 的dj kool herc創造了b boy的概念,也就是breaking bo...