X的N次方,用C语言,N>1000哦... 到底怎么用C语言实现x的n次方?

c\u8bed\u8a00\u4e2d\u7f16\u5199x\u7684n\u6b21\u65b9\u600e\u4e48\u5f04\u554a\uff1f

C\u8bed\u8a00\u4e2d\u8ba1\u7b97x\u7684n\u6b21\u65b9\u53ef\u4ee5\u7528\u5e93\u51fd\u6570pow\u6765\u5b9e\u73b0\u3002\u51fd\u6570\u539f\u578b\uff1adouble pow(double x, double n)\u3002
\u5177\u4f53\u7684\u4ee3\u7801\u5982\u4e0b\uff1a
#include
#include
int main( )
{
printf("%f",pow\uff08x\uff0cn)\uff09\uff1b
return 0\uff1b
}
\u6ce8\uff1a\u4f7f\u7528pow\u51fd\u6570\u65f6\uff0c\u9700\u8981\u5c06\u5934\u6587\u4ef6#include\u5305\u542b\u8fdb\u6e90\u6587\u4ef6\u4e2d\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u4f7f\u7528\u5176\u4ed6\u7684\u65b9\u6cd5\u5f97\u5230x\u7684n\u6b21\u65b9\uff1a
#include
double power(double x,int n)\uff1b
main( )
{
double x\uff1b
int n\uff1b
printf("Input x,n:")\uff1b
scanf("%lf,%d",&x,&n)\uff1b
printf("%.2lf",power(x,n))\uff1b
}
double power(double x,int n)
{
double a=1.0\uff1b
int i\uff1b
for(i=1;i<=n;i++)
a*=x\uff1b
return a\uff1b
}

\u533a\u5206x\u548cn\u7684\u7c7b\u578b\uff0c\u4ee5\u53ca\u5bf9\u7ed3\u679c\u7684\u8981\u6c42\uff0c\u53ef\u4ee5\u6709\u5982\u4e0b\u4e24\u79cd\u65b9\u5f0f\u3002
1 \u4f7f\u7528pow\u51fd\u6570\u3002
\u5728C\u8bed\u8a00\u7684\u6807\u51c6\u5934\u6587\u4ef6math.h\u4e2d\uff0c\u6709\u5e93\u51fd\u6570pow\uff0c\u58f0\u660e\u4e3a
double pow(double x, double n);
\u5176\u529f\u80fd\u4e3a\u8ba1\u7b97x\u7684n\u6b21\u65b9\u5e76\u8fd4\u56de\u7ed3\u679c\u3002
\u6240\u4ee5\u53ef\u4ee5\u7528pow\u8ba1\u7b97x\u7684n\u6b21\u65b9\u3002
\u8be5\u51fd\u6570\u9002\u7528\u4e8e\u4ee5\u4e0b\u51e0\u79cd\u60c5\u51b5\uff1a
a. \u5f53n\u4e3a\u6d6e\u70b9\u6570\u7c7b\u578b\u65f6\uff0c\u5fc5\u987b\u4f7f\u7528pow\u3002
b. \u5f53x\u4e3a\u6d6e\u70b9\u6570\u6216\u5bf9\u7ed3\u679c\u503c\u7cbe\u5ea6\u8981\u6c42\u4e0d\u9ad8\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528pow\u3002

2 \u5f53x\u548cn\u5747\u4e3a\u6574\u578b\uff0c\u4e14\u5bf9\u7ed3\u679c\u8981\u6c42\u7edd\u5bf9\u51c6\u786e\u503c\uff0c\u800c\u4e0d\u80fd\u662f\u8fd1\u4f3c\u503c\u65f6\uff0c\u53ef\u4ee5\u81ea\u884c\u7f16\u5199\u6574\u578b\u4e58\u65b9\u51fd\u6570\u3002
\u5982
int pow_int(int x, int y){ int r = 1; while(y--) r*=x; return r;}\u5176\u539f\u7406\u4e3a\uff0c\u5c06x\u81ea\u4e58y\u6b21\uff0c\u5e76\u5c06\u7ed3\u679c\u7d2f\u8ba1\u5230r\u4e0a\uff0c\u6700\u7ec8\u8fd4\u56de\u3002
\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u4f7f\u7528\u8be5\u79cd\u65b9\u6cd5\u65f6\u867d\u7136\u53ef\u4ee5\u5f97\u5230\u51c6\u786e\u503c\uff0c\u4f46\u7531\u4e8eint\u53ef\u4ee5\u8868\u793a\u7684\u8303\u56f4\u6bd4double\u5c0f\u5f88\u591a\uff0c\u6240\u4ee5\u51fa\u73b0\u6ea2\u51fa\u7684\u6982\u7387\u8981\u6bd4pow\u51fd\u6570\u66f4\u5927\u3002

有实用价值不?
不要求精确无误的,就用power()函数,返回一个精度有限的双精度数
要求精确无误的话,你的X是整数还是小数?小在于1还是小于1?
大于1的整数,的N次方,那就只是个练手的题目,用多位数处理循环做乘法就可以了,没有新意,懒得做

  • c璇█璁$畻x鐨刵娆℃柟
    绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟pow鏉ュ疄鐜般傚嚱鏁板師鍨嬶細double pow(double x, double n)銆傚叿浣撶殑浠g爜濡備笅锛歩nclude <stdio.h> include <math.h> int main( ){ printf("%f",pow锛坸锛宯)锛夛紱return 0锛泒 娉細浣跨敤pow鍑芥暟鏃讹紝闇瑕佸皢澶存枃浠#include<math.h>鍖呭惈杩涙簮鏂囦欢涓
  • c璇█鎬庢牱璁$畻x鐨刵娆℃柟?
    绛旓細1 浣跨敤pow鍑芥暟銆傚湪C璇█鐨勬爣鍑嗗ご鏂囦欢math.h涓紝鏈夊簱鍑芥暟pow锛屽0鏄庝负 double pow(double x, double n);鍏跺姛鑳戒负璁$畻x鐨刵娆℃柟骞惰繑鍥炵粨鏋溿傛墍浠ュ彲浠ョ敤pow璁$畻x鐨刵娆℃柟銆傝鍑芥暟閫傜敤浜庝互涓嬪嚑绉嶆儏鍐碉細a. 褰搉涓烘诞鐐规暟绫诲瀷鏃讹紝蹇呴』浣跨敤pow銆俠. 褰搙涓烘诞鐐规暟鎴栧缁撴灉鍊肩簿搴﹁姹備笉楂樻椂锛屽彲浠ヤ娇鐢╬ow銆2 ...
  • C璇█缂栧啓绋嬪簭杈撳嚭x鐨刵娆℃柟缁撴灉,x鍜宯浠庨敭鐩樿緭鍏
    绛旓細//鏂囦欢1 pow.c#include"linkin.h"float mypow(float x, int n){ float result = 1; for(int i = 0;i < n; i++) result *= x; return result;}//鏂囦欢2 print.c#include<stdio.h>#include"linkin.h"void print(float c){printf("%f",c);}//鏂囦欢3 insert.c#include...
  • C璇█ 鍑芥暟鍔熻兘鏄绠x鐨刵娆℃柟
    绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟鏉ュ疄鐜般傚叿浣撶殑浠g爜濡備笅锛歩nclude <stdio.h> include <math.h> int main( ) {printf("%f",pow锛坸锛宯)锛夛紱return 0锛泒 C璇█鏄竴绉嶇粨鏋勫寲璇█锛瀹冩湁鐫娓呮櫚鐨勫眰娆★紝鍙寜鐓фā鍧楃殑鏂瑰紡瀵圭▼搴忚繘琛岀紪鍐欙紝涓c璇█鐨勫鐞嗗拰琛ㄧ幇鑳藉姏閮介潪甯哥殑寮哄ぇ锛屼緷闈犻潪甯稿叏闈㈢殑杩愮畻绗...
  • c璇█寰幆缁撴瀯姹X鐨凬娆℃柟
    绛旓細h"void main(){...//鍦╩ain鍑芥暟閲屽紩鐢ㄤ笅闈㈢殑鍑芥暟}//寰幆姹X鐨凬娆℃柟鐨勫嚱鏁癲ouble power(double x, int n){ double val=1.0; //锛堝垵濮嬪寲杩斿洖鍊硷級while(n--) //锛堝惊鐜疦娆锛孨娆℃柟锛塿al=val*x; //锛堟瘡娆′箻浠锛岀浉褰撲簬涔樹互1娆℃柟锛塺eturn(val); //锛堣繑鍥炵粨鏋滐級} ...
  • c璇█缂栫▼n娆℃柟鎬庝箞琛ㄧず
    绛旓細pow锛坸锛宯锛夛紱x鐨刵娆℃柟
  • 缂栫▼C璇█:缂栦竴涓嚱鏁,璁$畻X鐨凬娆℃柟,N鏄潪璐熸暣鏁,璋冪敤姝ゅ嚱鏁拌绠7.01...
    绛旓細5float xdeN(float x, int k);void main(){ float a=7.01,b;int i;b=xdeN(a,N);printf("%f\n",b);}float xdeN(float x, int k){ int i;float sum=1;for(i=1;i<=k;i++)sum=sum*x;return sum;} 鎴戝啓鐨勭▼搴忔姣旇緝绠鍗曪紝鑳藉瀹炵幇绋嬪簭鐨勮姹傘 灏忔暟閮ㄥ垎杩樻槸鏈夎宸殑銆
  • C璇█閲X鐨凬娆℃柟
    绛旓細鍦ㄥ墠闈㈠姞涓婃暟瀛﹀嚱鏁扮殑澶存枃浠#include"math.h"璋冪敤鍑芥暟pow 瀹氫箟double x,n;鐒跺悗灏嗕竴涓彉閲忕瓑浜巔ow(x,n)锛岄偅涓彉閲忓氨鏄X鐨凬娆℃柟
  • X鐨凬娆℃柟 杩欎釜闂鎬庝箞鐢–璇█鏉ュ畬鎴?
    绛旓細鍙互閫氳繃鍑芥暟瑙e喅鏈绠鍗 include<stdio.h>;include<math>;\璋冪敤搴擄紱main(){ double x锛y;\瀹氫箟鍙岀簿搴︽暟x y锛沺rintf("璇疯緭鍏ヤ竴涓弻绮惧害鏁")锛泂canf("%f",x);\杈撳叆涓涓暟锛泍=pow (x,x);\杩愮畻锛沺rintf锛"%f",y锛;\杈撳嚭缁撴灉锛泒
  • 鐢–璇█绋嬪簭璁捐:姹x鐨刵娆℃柟鐨勫嚱鏁般
    绛旓細pow()鐢ㄦ潵璁$畻浠x 涓哄簳鐨 y 娆℃柟鍊硷紝鐒跺悗灏嗙粨鏋滆繑鍥 鍙兘瀵艰嚧閿欒鐨勬儏鍐碉細濡傛灉搴曟暟 x 涓鸿礋鏁板苟涓旀寚鏁 y 涓嶆槸鏁存暟锛屽皢浼氬鑷 domain error 閿欒銆傚鏋滃簳鏁 x 鍜屾寚鏁 y 閮芥槸 0锛屽彲鑳戒細瀵艰嚧 domain error 閿欒锛屼篃鍙兘娌℃湁锛涜繖璺熷簱鐨勫疄鐜版湁鍏炽傚鏋滃簳鏁 x 鏄 0锛屾寚鏁 y 鏄礋鏁帮紝鍙兘浼氬鑷 ...
  • 扩展阅读:x∧n-y n ... x n求和 ... c语言计算x的n次幂 ... x n+y n因式分解 ... 幂计算器在线使用 ... c语言中 f ... c语言中 x ... c语言简单实现x的n次方 ... c语言中 o ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网