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

相关文章
|
6月前
|
C语言
【C语言刷题系列】合并两个有序数组
【C语言刷题系列】合并两个有序数组
|
4月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
6月前
|
C语言
【C语言刷题系列】删除公共元素
【C语言刷题系列】删除公共元素
|
6月前
|
存储 C语言
【C语言刷题系列】对数字添加逗号
【C语言刷题系列】对数字添加逗号
|
6月前
|
C语言
【C语言刷题系列】喝汽水问题
【C语言刷题系列】喝汽水问题
|
2月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
17 0
|
4月前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
4月前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
4月前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
6月前
|
C语言
C语言实现水仙花数与99乘法表
C语言实现水仙花数与99乘法表