1.计算1!+2!+3!+…+n!
题目内容:输入n(0<n<13),计算1!+2!+3!+4!+…+n!。
//输入n(0<n<13),计算1!+2!+3!+4!+…+n!。
#include<iostream>
using namespace std;
int main()
{
int n, u=1, sum=0,i;
cin >> n;
for (i = 2; i <= (n+1); i++)
{
sum += u;
u *= i;
}
cout << sum;
return 0;
}
2.题目内容:
求a+aa+aaa+aaaa+…+aa…a(第n项,n个a),其中a是1~9的整数。例如,a=1,n=3时,式子为1+11+111,结果为123。
#include<iostream>
using namespace std;
int main()
{
int a, n;
cin >> a >> n;
int sum=0, u=a;//总和和通项
int i;//循环控制变量
for (i = 1; i <= n; i++)
{
sum += u;
u = u * 10 + a;
}
cout << sum;
return 0;
}
3.题目内容:
arcsin(x)写成级数形式为:用户输入x,利用该式,计算反正弦函数的值。结束条件设为|u|<1E-8(小于1E-8的项不加入和中),其中u为通项。
//用户输入x,利用该式,计算反正弦函数的值。
//结束条件设为|u|<1E-8(小于1E-8的项不加入和中),其中u为通项。
#include<iostream>
using namespace std;
int main()
{
double x, u, sum;
double n = 1;
cin >> x;
u = x;
sum = x;
while (u >= 1E-8||u<-(1E-8))
{
u = u * (2.0 * n - 1) * (2.0 * n - 1) * x * x / 2.0 / n / (2.0 * n + 1);//两项关系
sum += u;
n++;
}
cout << sum;
return 0;
}
4.题目内容:
设n是一任意自然数,若将n的各位数字反向排列所得的自然数n1与n相等,则称n是回文数。例如,12321,反向排列还是12321,它是一个回文数。而1234,反向排列为4321,它不是回文数。
//编写程序,输入一个正整数,判断该数是不是回文数。是显示YES,不是显示NO。
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int sum = 0;//反序数
int a = n;//正序数,因为n值变了,这里保存n的值
while (n > 0)
{
sum = sum * 10 + n % 10;
n /= 10;
}
if (sum == a)
{
cout << "YES";
}
else
{
cout << "NO";
}
return 0;
}
5.整数的素数因子分解
题目内容:任意一个大于1的正整数可以表达为一系列素数的乘积,这样的分解是唯一的,称为素数分解。例如,60可以分解为2235。编写程序,显示用户输入的一个正整数的素数分解,输出格式形如:60=2235,7=7等。
//任意一个大于1的正整数可以表达为一系列素数的乘积,
//这样的分解是唯一的,称为素数分解,编写程序求素数分解
#include<iostream>
using namespace std;
int is(int a)//判断是否为质数
{
int flag=1;
if (a == 1)
{
flag = 0;
}
else
{
for (int i = 2; i < a; i++)
{
if (!(a % i))
{
flag = 0; break;
}
}
}
return flag;
}
int main()
{
int n;
cin >> n;
cout << n << "=";
for (int i = 2; i <= n; i++)
{
while (is(i) == 1 && (n % i == 0))//此处不能用if,因为一个质数可能出现两次
{
cout << i;
if (i < n)
{
cout << "*";
}
n /= i;
}
}
return 0;
}