1.给定一个数字,构造它的回文数字。例如:1234的回文数字为:1234321
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入一个整数:\n");
(void)scanf("%d", &n);
int m = n;
int a = n / 10;
while (a != 0)
{
n = n * 10 + a % 10;
a /= 10;
}
printf("%d的回文数字为%d\n", m, n);
return 0;
}
运行结果为:
2.判断1456789876541是否为素数,是输出“是素数”,不是则输出“不是素数”
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
long long n = 1456789876541;
int i;
for (i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
break;
}
if (i > sqrt(n))
printf("%lld是素数\n", n);
else
printf("%lld不是素数\n", n);
return 0;
}
运行结果为:
3.从键盘获取一个正整数,如果把它转为16进制的数字,那么它是一个几位数呢?如果把它转为28进制又是 一个几位数呢?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入一个正整数:\n");
(void)scanf("%d", &n);
int count16 = 0;
int count28 = 0;
int m = n;
if (n == 0)
{
printf("0转为16进制为1位数,转为28进制为1位数\n");
return 0;
}
while (m != 0)
{
m /= 16;
count16++;
}
m = n;
while (m != 0)
{
m /= 28;
count28++;
}
printf("%d转为16进制是%d位数\n转为28进制是%d位数\n", n, count16++, count28++);
return 0;
}
运行结果为:
4.求阶乘的和,1!+2!+3!+4!+…+n!,其中n由键盘读取.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入n:\n");
(void)scanf("%d", &n);
int sum = 0;
int a = 1;
if (n == 0)
{
printf("sum=1\n");
return 0;
}
for (int i = 1; i <= n; i++)
{
a *= i;
sum += a;
}
printf("sum=%d\n", sum);
return 0;
}
运行结果为:
5.求 Sn=a+aa+aaa+…+aa…a之值,其中a是一个数字,n表示a的位数,a和n由键盘输入。例如: 2+22+222+2222+22222(此时a=2,n=5)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, n;
printf("请输入a和n:\n");
(void)scanf("%d%d", &a, &n);
int sum = 0;
int tmp = 0;
for (int i = 1; i <= n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
printf("Sn=%d\n", sum);
return 0;
}
运行结果如下: