摘要:#include using namespace std;double f(double x,double y) { double res = 1; for(int i = 0; i < y; i++) res *= x; ret
练46.1 求 π 的值
解题思路:
定义一个函数表示 x 的 n 次方
定义一个函数表示 arctanx
#include using namespace std;double f(double x,double y) { double res = 1; for(int i = 0; i = 0.000002; i++) { double fm = i*2 - 1; double fz = f(p, fm); x = fz/fm; if(i%2 == 0) ans -= x; else ans += x; } return ans;}int main { double x = 6*solve(1.0/sqrt(3)); printf("%.10lf", x); return 0;}练46.2 求丑数
把只包含因子 2、3 和 5 的数为丑数。例如 6、8 都是丑数,但 14 不是,因为它包含因子 7。习惯上,我们把 1 当作是第一个丑数。
先定义一个判断丑数的函数,利用它输出 1∼100 之间所有的丑数,并统计出个数。
解题思路:
把输入的数除 2 、除 3、除 5,除完所有因子后若结果为 1 必定是丑数,否则不是丑数。
#includeusing namespace std;bool solve(int n) { while(n%2==0) n/=2; while(n%3==0) n/=3; while(n%5==0) n/=5; return n == 1;}int main{ int num=0; for(int i=1;i练46.3 哥德巴赫猜想
题目描述
输入一个整数 n,判断 4~n 之间的偶数分解成两个素数的和,不满足的偶数输出验证失败。
解题思路:
写一个质数判断的函数,枚举 2~偶数根号的数,如果有一个因子则不是素数,否则是素数。
#includeusing namespace std;int shusu(int x){ if(x>n; for(int i = 4; i练46.4 第 N 个智慧数
题目描述
智慧数:两个正整数的平方差。输入一个整数 n,输出第 n 个智慧数。
解题思路
循环嵌套枚举两个正整数,然后再作差,枚举到第 n 个智慧数立即输出。
#includeusing namespace std;bool check(int n) { for (int i = 2; i > n; for (int i = 1;; i++) { if (check(i)) s++; if (s == n) { cout来源:远志教育
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!