C语言每日一题(6):求五位数中的变种水仙花数

标头C语言每日一题(6):求五位数中的变种水仙花数_第1张图片


  • 文章主题:求五位数中的变种水仙花数
  • 所属专栏:C语言每日一题
  • 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想
  • 个人主页:[₽]的个人主页

目录

  • 前言
    • 编程起因
    • 项目介绍
  • 设计思路
    • 1.整体逻辑
    • 2. 具体逻辑
  • 代码展示
  • 效果展现
  • 结语


前言

编程起因

最近刚学习表达式书写规范,正好牛客网有相关的题目练习,练习中觉得这一提十分不错,于是写了这篇博客,也可以帮助大家学习一下有关于这方面的知识。

项目介绍

设计了一个求变种水仙花1的项目,通过求各项积之和的运算原理,可以很好的帮助大家练习有关C语言表达式的规范书写技能。


设计思路

1.整体逻辑

用括号表明跟编译器表明先算每一项的乘积之后再求和,尽量将每一项的乘积式写在各自独立的一行中缩进相同的长度对齐使整个代码在表达式求值顺序唯一确定的同时又更加的整洁。(书写不规范是很有风险的2

2. 具体逻辑

主要运用变种水仙花考察对于表达式的书写规范,无具体逻辑的要求。


代码展示

int main()
{
    printf("The number of varieties of narcissus in the five digit range is:\n");
    for (int num = 10000; num <= 99999; num++)
    {
        int sum = 0;
        sum += (num / 10000) * (num % 10000);//这里如果写成一个表达式
                                             //编译器可以理解成几种求
                                             //值顺序,虽然对表达式的
                                             //值没有影响,但是这只是
                                             //一个例子,在很多时候书
                                             //些有多种表达式求值顺序
                                             //的表达式是一种有很大风
                                             //险的行为。
 
        sum += (num / 1000) * (num % 1000);
        sum += (num / 100) * (num % 100);
        sum += (num / 10) * (num % 10);
        if (num == sum)
        {
            printf("%d ", num);
        }
    }
    printf("\n");
    return 0;
}

效果展现

C语言每日一题(6):求五位数中的变种水仙花数_第2张图片


结语

以上就是我对求五位数中的变种水仙花数这个项目的理解,希望对你表达式书写规范方面有所启发,并能让你逐渐在书写代码的时候养成良好书写习惯。作为刚学编程的小白,可能在一些设计逻辑方面有些不足,欢迎评论区进行指正!看都看到这了,点个小小的赞或者关注一下吧(当然三连也可以~),你的支持就是博主更新最大的动力!让我们一起成长,共同进步!


  1. 变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。 ↩︎

  2. 比如说每一项中都有同一个值随着每一 项发生改变而改变但是又
    参与每一项运算的变量,这时书写不规范就会产生出多个值,并且也无法根据程序的书写逻辑知道哪一种是对的。 ↩︎

你可能感兴趣的:(C语言每日一题,c语言,visual,studio,学习)