#include<iostream>usingnamespace std;doublefact(int x)//定義階乘函數。注意是double類型{double y = x;//注意是double類型for(int i = x-1; i >0; i--)y *= i;return y;};doubleMy_sin(int x)//定義sin函數。注意是double類型{double y =0;//注意是double類型int i =1;double n =pow(x, i)/fact(i);//初始化n的值為第一項的值。注意不能賦值為0,否則while循環不執行while(n >1e-6)//多項式n的值小于10^6時停止循環(數值已收斂){n =pow(x, i)/fact(i);if(i %4==1)y += n;elseif(i %4==3)y -= n;i++;};return y;};doublefun_k(float r,float s)//定義函數。注意是double類型{double k;//注意是double類型if(pow(r,2)<=pow(s,2))k =pow((pow(My_sin(r),2)+pow(My_sin(s),2)),0.5);else k =0.5*sin(r * s);return k;}intmain(){float r, s ,k;cout <<"Please input value of r:"<< endl;cin >> r;cout <<"Please input value of s:"<< endl;cin >> s;k =fun_k(r, s);cout <<"value of k is:"<< k;}
題目: 雙指針想法: i 指針在數組不為 0 的地方停留,j 指針在每個地方停留,依次交換 i 和 j 指針。當 i 指針遍歷完所有數組元素時,j 指針指向的元素及后面的元素都為0。 代碼如下:
C版本
class Solution …