版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Pecony/article/details/79769307
#include<stdio.h>
#include<iostream>
using namespace std;
void Sum();//1.求1/1!-1/3!+1/5!-1/7!+...+(-1)^n+1/(2n-1)!
void WanShu();//2.若一个数恰好等于它的因子之和(包括1但不包括它自身)则称之为“完数”
void AnPoint();//3.矩阵某点 行最小列最大
void PrintPic();//4.打印图形 见课本56
int main ()
{
Sum();
WanShu();
AnPoint();
PrintPic();
}
//1.求1/1!-1/3!+1/5!-1/7!+...+(-1)^n+1/(2n-1)!
void Sum()
{
int n = 2;
int sign = 1;
double num = 1;
double sum = 1;
for(int i = 1; i < n; i++)
{
sign = - sign;
num = num * 2 * i * (2 * i + 1);
sum = sum + sign/num;
}
cout << "Sum = " << sum << endl;
}
void WanShu()
{
int sum = 1;
int num = 28;
int k = 0;
int record[num];
record[0] = 1;
for(int j = 2; j <= num; j++)
{
sum = 1;
k = 0;
for(int i = 2; i < j; i++)
{
if(j % i == 0)
{
sum += i;
record[++k] = i;
}
}
if(sum == j)
{
cout << j << "是完数\n" << endl;
for(int i = 0; i <= k; i++)
{
cout << record[i] << " ";
}
}
else
cout << "不是完数\n";
}
}
void AnPoint()
{
int num[4][4] = {{3, 1, 4, 5}, {2, 9, 7, 4}, {12, 11, 13, 14}, {5, 6, 7, 8}};
int find;
int maxj, k;
for(int i = 0; i < 4; i++)
{
find = num[i][0];
maxj = 0;
for(int j = 0; j < 4; j++)
{
if(num[i][j] < find)
{
maxj = j;
find = num[i][j];
}
}
for(k = 0; k < 4; k++)
{
if(num[k][maxj] > find)
{
break;
}
}
if(k == 4)
printf("\n%d是鞍点\n", find);
}
}
void PrintPic()
{
int n = 10;
int num[n + 1][n + 1];
int k = 1;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n - i + 1; j++)
{
num[i + j - 1][j] = k++;
}
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
cout << num[i][j] << " ";
}
cout << endl;
}
}