目录
一.打印菱形
题目描述:
用C语言在屏幕上输出以下图案:
这道题其实就是一个找规律题,题目不难,我们直接给出代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int low = n / 2;
int up = n - low;
int i = 0;
int j = 0;
//打印上层
for (i = 0; i < up; i++)
{
//打印空格
for (j = 0; j < up - i - 1 ; j++)
{
printf(" ");
}
//打印*
for (j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
//打印下层
for (i = 0; i < low; i++)
{
//打印空格
for (j = 0; j <= i; j++)
{
printf(" ");
}
//打印*
for (j = 0; j < 2 * ( low - i ) - 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
这些规律都不难发现,就是通过写出几项,来猜测通项公式。这在我们高中时候已经很熟悉了
运行结果为
二、打印水仙花数
题目描述:
求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。
对于这个题,我们要思考的是,我们要求出一个水仙花数,那么首先得先求出他的位数,然后将他的每一项拆开,进行求幂,判断是否相等即可
代码如下
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 0; i < 100000; i++)
{
//计算水仙花数
//求出每一个i的位数
int n = 1;
int tmp = i;
while (tmp > 9)
{
tmp = tmp / 10;
n++;
}
//求n次方并进行判断
tmp = i;
int sum = 0;
while (tmp)
{
sum = sum + pow(tmp % 10, n);
tmp = tmp / 10;
}
if (i == sum)
{
printf("%d ", i);
}
}
}
运行结果为
三、计算求和
题目描述:
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
这道题难度也不大,只要切记不要搞混了a即可
#include<stdio.h>
int main()
{
int a, n;
scanf("%d %d", &a, &n);
int tmp = 0;
int i = 0;
int sum = 0;
for (i = 0; i < n ; i++)
{
tmp = tmp * 10 + a;
sum = sum + tmp;
}
printf("%d", sum);
return 0;
}
运行结果为
总结
本节就讲解了一些我们C语言中经常遇到的几种题目,水仙花数,打印菱形,以及求和的三种提醒解法。下节我们继续讲解一些常见的题目