算法设计与分析入门学习练习之二
Posted variance
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法设计与分析入门学习练习之二相关的知识,希望对你有一定的参考价值。
//计算1/1!-1/3!+1/5!-1/7!+…+(-1)^(n+1)/(2n-1)! float mathTest(int n){ int sign = 1; float sum = 1, t = 1; for (int i = 1; i <= n - 1; i++) { sign = sign*(-1); t = t*(2 * i)*(2 * i + 1); sum = sum + sign / t; } return sum; } //判断一个是否为完数(如:28=1+2+4+7+14) //寻找(0,n]以内的所有完数 void IsPnum(int n){ int i, a[100]; for (i = 1; i <= n;i++) { int s = 1, k = 0; for (int j = 2; j < i;j++) { if ((i%j)==0) { s = s + j; a[k] = j; k++; } } if ((i==s)&&(s!=1)) { cout << s << ",it‘s factors are:" << "1"; for (int i = 0; i < k;i++) { cout << "," << a[i]; } cout << endl; } } } //求矩阵的鞍点,即行上最小而列上最大的点 void FindAnDian(){ //输入一个n*n的矩阵 cout << "input n*n matric: " << endl; int a[3][3], n = 3, col, row ,AD=0; //cin >> n; for (int i = 0; i < n;i++) { for (int j = 0; j < n;j++) { cin >> a[i][j]; } } //打印矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout<< a[i][j]; } cout << endl; } //寻找鞍点 for (int i = 0; i < n;i++) { int t = a[i][0]; for (int j = 0; j < n;j++) { if (t>a[i][j]) { t = a[i][j]; col = j; } } for (row = 0; row < n;row++) { if (t<a[row][col]) { break;//如果第col列中有元素大于t;则直接终止判断是否为列最大元素 } } if (row<n) { continue;//如果row<n即证明第i行的最小元素不是第col列的最大元素直接结束本次循环。寻找下一行元素的最小值。 } else { cout << "the result is a[" << i << "]" << "[" << col << "]" << endl; AD = 1; break; } } if (AD==0) { cout << "Non result" << endl; } }
以上是关于算法设计与分析入门学习练习之二的主要内容,如果未能解决你的问题,请参考以下文章
线性表练习之Example045-有一个带头结点的单链表 L,设计一个算法使其元素递增有序
人工智能深度学习入门练习之(10)TensorFlow – 介绍