c++编程计算x的n次方 c++递归计算x的n次方
\u7528C++\u7f16\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u6c42x\u7684n\u6b21\u65b9\uff0cx\uff0cn\u7531\u952e\u76d8\u8f93\u5165\u6ee1\u610f\uff0c\u6c42\u91c7\u7eb3\uff01
#include
double foo(int n,double x)
{
if(1==n)
{
return x;
}
else
{
if(n%2==0)
return foo(n/2,x*x);
else
return x*foo((n-1)/2,x*x);
}
}
void main()
{
int n;
double x;
cin>>x>>n;
cout<<foo(n,x)<<endl;
}
\u6539\u4e86\u4e00\u4e9b\u9519\u540e\u53ef\u4ee5\u5b9e\u73b0\u6c42x^n\u529f\u80fd\u4e86
运行两次,求出结果。当n自减到零时,跳出循环。返回val。你应该懂得。这很基础。
while(n--)懒人写法,
while(n--)
val*=x;
其等效于
while(n){
val*=x;
n=n-1;
}
当n==0时才退出循环,n不等于0时(如2,3...),循环执行
val*=x;等效于val=val*x;
n--;
if n !=0 继续while内的。。。。
否则 跳出while
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y;
cin>>x>>y;
cout<<pow(x,y);
}
x的y次方
绛旓細include <stdio.h> int main(void){ double x,y;int i,n;y=1;printf("璇疯緭鍏锛歕n");scanf(" %lf",&x);printf("璇疯緭鍏锛歕n");scanf(" %d",&n);for (i=1;i<=n;i++){ y=y*x;} printf("x=%0.2f,y=%0.2f \n",x,y);return 0;} ...
绛旓細-1= 瑙e湪-1= include void main(){double x;for(x=-1;x<=1;x+=1e-6){ if(fabs(cos(x)-x )<=1e-6)break;} printf("%f\n",x);} 濉1e-7涔熷彲浠ワ紝杩欏氨浣跨粨鏋滅簿纭埌10鐨-7娆℃柟 浣唙c++杈撳嚭缁撴灉鏃朵竴鑸緭鍑哄皬鏁扮偣鍚6浣-->绮剧‘鍒10鐨-6娆℃柟 鎵浠ョ敤1e-7浣嗘渶缁堝彧绮剧‘鍒10鐨-...
绛旓細include<stdio.h> float x;int n,i;float s=1.0;void main(){ printf("Please Input x:");scanf("%f",&x);printf("Please Input num:");scanf("%d",&n);if(n<0)printf("n must greater than 0.");else if(n==0)s=1;else { for(i=1;i<=n;i++){ s=s*x;} } pri...
绛旓細C璇█涓璁$畻涓涓暟鐨凬娆℃柟鍙互鐢ㄥ簱鍑芥暟pow鏉ュ疄鐜般傚嚱鏁板師鍨嬶細double pow(double x, double y)銆備妇渚嬪涓嬶細double a = pow(3.14, 2); // 璁$畻3.14鐨勫钩鏂广傛敞锛氫娇鐢╬ow鍑芥暟鏃讹紝闇瑕佸皢澶存枃浠#include<math.h>鍖呭惈杩涙簮鏂囦欢涓
绛旓細姣斿瀹炵幇value鐨刵娆℃柟 int num = value; while(n>=2) { num *= value; n--; }//num灏辨槸鍊间簡
绛旓細{ int i=0;int j=a;//鍦ㄨ繖寰幆锛岃繘琛宐-1娆★紝鍥犱负j=a锛屾墍浠ュ湪绗竴娆$殑鏃跺欏氨宸茬粡杩涜浜哸鐨勫钩鏂逛簡锛屾墍浠ラ渶瑕佸噺涓涓俧or(i=0;i
绛旓細C璇█涓〃杈n娆℃柟鍙互鐢╬ow鍑芥暟銆傚嚱鏁板師鍨嬶細double pow(double x, double y)鍔 鑳斤細璁$畻x^y鐨勫 杩 鍥 鍊硷細璁$畻缁撴灉 涓句緥锛歞ouble a;a = pow(3.14, 2); // 璁$畻3.14鐨勫钩鏂癸紝骞跺皢缁撴灉淇濆瓨鍦ㄥ彉閲廰涓 娉細浣跨敤pow鍑芥暟蹇呴』灏嗗ご鏂囦欢#include<math.h>鍖呭惈杩涙簮鏂囦欢涓 ...
绛旓細鍙互杈撳叆浠绘剰鏁扮殑浠绘剰娆℃柟 涓嶄細鏈夋孩鍑#include <stdio.h> include <string.h> define x 1000 int main(int argc, char *argv[]){ char a[10];long b[x];long m,pown,n,i,j,k,c,flag,len;while(scanf("%s%ld",a,&pown)!=EOF){ memset(b,0,sizeof(b));len=strlen(a);m=...
绛旓細1銆佸ご鏂囦欢锛#include 2銆佸師鍨嬶細double pow(double x, double y);pow() 鍑芥暟鐢ㄦ潵姹 x 鐨 y 娆″箓锛娆℃柟锛塸ow()鐢ㄦ潵璁$畻浠 涓哄簳鐨 y 娆℃柟鍊硷紝鐒跺悗灏嗙粨鏋滆繑鍥炪傝杩斿洖鍊间负 ret锛屽垯 ret = xy銆3銆佷妇渚嬪涓嬶細double a = pow(4, 2); // 璁$畻4鐨勫钩鏂 4銆佸彲鑳藉鑷撮敊璇殑鎯呭喌锛氬鏋滃簳鏁 x...
绛旓細power鍑芥暟搴旇鍐欏湪main鍑芥暟涔嬪墠锛屼笉鐒剁殑璇濆氨鏃犳硶璋冪敤 power鍑芥暟鍐呯殑t鍒濆鍊煎簲璧嬩负1.0锛屼笉鐒朵細杈撳嚭涓涓緢濂囨殑鏁