【C语言刷题】水仙花数、打印菱形、求和

简介: 【C语言刷题】水仙花数、打印菱形、求和

一.打印菱形

题目描述:

用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语言中经常遇到的几种题目,水仙花数,打印菱形,以及求和的三种提醒解法。下节我们继续讲解一些常见的题目

相关文章
|
2月前
|
存储 C语言
C语言中的级数求和
C语言中的级数求和
|
2月前
|
C语言
C语言-----用二维数组解决菱形的打印问题
C语言-----用二维数组解决菱形的打印问题
20 0
|
2月前
|
C语言
C语言---自幂数(“水仙花数”)
C语言---自幂数(“水仙花数”)
43 0
|
2月前
|
存储 C语言 索引
C语言数组求和,零基础也能轻松学会!
C语言数组求和,零基础也能轻松学会!
|
2月前
|
算法 C语言
【专业解码】递归求和在C语言中的神操作!只需1秒,你也能轻松开挂
【专业解码】递归求和在C语言中的神操作!只需1秒,你也能轻松开挂
|
5月前
|
C语言
c语言编程练习题:7-33 统计素数并求和
c语言编程练习题:7-33 统计素数并求和
23 0
|
存储 算法 C语言
C语言刷题~Leetcode与牛客网简单题
C语言刷题~Leetcode与牛客网简单题
|
16天前
|
C语言
【C语言必刷题】6. 水仙花数
【C语言必刷题】6. 水仙花数
|
19天前
|
C语言
C语言刷题1
C语言刷题1
419 0
|
2月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
30 0