c语言经典例题-循环结构程序设计

news2025/1/16 15:44:45

  (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

求各位数字之积: 

本关任务:计算正整数num的各位上的数字之积。 例如:

输入:2583 经过----(2x5x8x3) 输出:240

输入:102 经过----(1x0x2) 输出:0

输入:136 经过----(1x3x6) 输出:18

代码思路:既然是求各位数字之积,就要把输入的数sum各位数字求出来,那如何求出各位数字呢?既然sum是整型,我们可以用sum%10的方式求出sum的个位整数,而十位即以上的整数则需要sum/10来将其变换为个位。最后用while循环来保证操作的持续实现,且保证其>0

#include<stdio.h>
int main(void)
{  
	  /*********Begin*********/
	  int num,a,b=1;
      scanf("%d",&num);
      while(num!=0)
      {
          a=num%10;
          num=num/10;
          b*=a;
      }
      printf("%d",b);
	  
	  /*********End**********/ 
       return 0;
}

提示:这里的a是用来取得sum各位的整数,然后与被初始化为1的变量b循环相乘得到结果 

求阶乘之和: 

本关任务:编写一个程序,任意输入n,求S=1!+2!+...+n!注意:n!表示n的阶乘。0的阶乘等于1,负数的阶乘等于0 *提示:(n+1)!=n!(n+1)**

例如:

输入:10

输出:4037913

输入:7
输出:5913

输入:-1
输出:0

代码思路:既然是阶乘之和,那就需要一个两层循环,第一层用来循环1~n,第二层用来循环每个数的阶乘,第二层的数 j 就<= i 。注意:这里的s用来表示第二层的阶乘,所以在第二层循环完回到第一层以后要重新初始化为1。

#include<stdio.h>
int main(void)
{  
	  /*********Begin*********/
	int n;
    
    int SUM=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
      int S=1;
      for(int j =1;j<=i;j++)
      {
         S*=j;
      }
       
      SUM=SUM+S;
    }
   
    printf("%d",SUM);

	  /*********End**********/ 
    return 0;
}

水仙花数: 

本关任务:求出所有的水仙花数。

提示:所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。

例如: 153是一个水仙花数,因为153=1^3+5^3+3^3

例如: 370是一个水仙花数,因为370 = 3^3 +7^3 + 0^3

代码思路:判断一个数是否为水仙花数,首先要看其是否为三位数,可以用for循环筛选,然后就是要计算每一位的立方之和 ,pow (x,y) 函数用来求 x 的 y 次方的值,和上面第一题一样,每一次循环都要/10,以此确保%10可以取得a的所有位值,最后判断各位的立方和是否等于原数

#include<stdio.h>
	int main(void)
	{  
	  /*********Begin*********/
	  
	  int a = 0;
	  for (a = 100; a < 1000; a++)
	  {
		int tmp = a;
		int sum = 0;
		while (tmp)
		{
		
			sum += (int)pow(tmp % 10, 3);
			tmp /= 10;
		}
        if (a == sum)
		{
			printf("%d ", a);
		}
	  }
	  /*********End**********/ 
       return 0;
    }

 寻找完数:

本关任务:一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出1000之内的所有完数。 

代码思路:因子之和,首先就要找到因子,我们可以通过遍历的方式,用%找出所有因子(因子一定小于等于原数的一半)然后将其逐个相加,若相加后sum的值等于原数,就将其打印

#include<stdio.h>
int main()
{
    int i, j;
    for (i = 2; i <= 1000; i++)
    {
        int sum = 0;
        for (j = 1; j <= i / 2; j++)
        {
            if (i % j == 0)
                sum += j;
        }   
        if (sum == i)
            printf("%d\n", sum);
    }
	return 0;
}

分数求和:

本关任务:编写程序计算 1 - 1/2 + 1/3 - 1/4 + ..... +1/99 - 1/100 的值,并显示出来(保留结果为小数点后三位)。

 代码思路:这题可能看起来很复杂,但只要仔细分析其中的逻辑,方法就会很简单。在我看来,单位数相加,双位数相减是这题的难点,我们不妨将其看为一个整体,那么100个相加减的数字就变为了50组有序的相加的数,通过for循环将其分母每次加2即可

#include<stdio.h>
int main()
{
    double sum = 0;
    double a = 1;
    double b = 2;
    double c = 0;
    for (int i = 1; i <= 50; i++)
    {
        c = 1 / a - 1 / b;
        a += 2;
        b += 2;
        sum = sum + c;
    }
    printf("%.3lf", sum);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/387443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch:构建自动补全功能 - Autocomplete

什么是自动补全&#xff08;autocomplete&#xff09;功能呢&#xff1f;我们举一个很常见的例子。 每当你去谷歌并开始打字时&#xff0c;就会出现一个下拉列表&#xff0c;其中列出了建议。 这些建议与查询相关并帮助用户完成查询。 Autocomplete 正如维基百科所说的&#xf…

vulnhub raven2复现

1.扫描全网段&#xff0c;找出了存活主机ip为192.168.85.144 nmap 192.168.85.0/24 2.nmap扫描端口 nmap -p1-65535 192.168.85.144 3.访问此网站&#xff0c;没找到什么地方可以利用漏洞 &#xff0c;查看中间件为wordpress 4.使用dirb对该网站进行目录扫描 dirb http://1…

刷题笔记3 | 203. 移除链表元素、707设计链表,206.反转链表

目录 203. 移除链表元素 707、设计链表 206.反转链表 203. 移除链表元素 题意&#xff1a;删除链表中等于给定值 val 的所有节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5] 示例 2&#xff1a; 输入&#xff1a;h…

18跨越语言:不同语言间进行RPC通信

在最开始介绍gRPC时我们讲到,gRPC具有灵活的兼容性,可以支持很多种编程语言,下面我们就使用在后端领域最常用的两种编程语言Go和Java,来体验一下gRPC在不同语言的项目间是如何进行通信的。 逻辑架构 由上图我们可以看出,Go语言设计gRPC的服务端,Java语言设计gRPC的客户端…

欢迎来到 BharatBox,这是一个以来自印度的知名艺术家和品牌为特色的文化元宇宙中心

通过 Brinc 的客户 Heftyverse 娱乐公司&#xff0c;将印度艺术家、电影制片厂、体育品牌和音乐公司聚集在这个全新虚拟中心。 The Sandbox 与 Brinc 的联营公司推出 BharatBox&#xff0c;这是一个全新的文化中心&#xff0c;由来自印度的娱乐、艺术和体育范畴的主要合作伙伴组…

吴恩达监督机器学习:回归和分类(一)

文章目录机器学习简介机器学习是什么quiz监督学习回归问题分类问题quiz无监督学习聚类问题quiz练习测试&#xff1a;监督学习与无监督学习线性回归线性回归模型第一部分基本术语线性回归模型第二部分quiz选学实验&#xff1a;线性回归模型代价函数公式quiz代价函数的直观理解qu…

SpringBoot+Seata在多数据源和feign中的简单使用

SpringBootSeata简单使用 目录seata执行过程安装seata下载seata使用自定义配置文件,NACOS为注册中心结合springboot实现AT模式1.多数据源引入依赖bootstrap.yml配置在使用的方法上用GlobalTransactional注解调用接口正常时调用接口报错时回滚2.配合feignseata优缺点seata执行过…

「并发编程实战」接口幂等性设计的最佳实现(8种实现方案)

「并发编程实战」接口幂等性设计的最佳实现&#xff08;8种实现方案&#xff09; 文章参考&#xff1a; 实战&#xff01;聊聊幂等设计 基于幂等表思想的幂等实践 追忆四年前&#xff1a;一段关于我被外企CTO用登录注册吊打的不堪往事 弹力设计篇之“幂等性设计” 一、什么是幂…

【Spark分布式内存计算框架——Structured Streaming】2. Structured Streaming 核心设计与编程模型

核心设计 2016年&#xff0c;Spark在2.0版本中推出了结构化流处理的模块Structured Streaming&#xff0c;核心设计如下&#xff1a; 第一点&#xff1a;Input and Output&#xff08;输入和输出&#xff09; Structured Streaming 内置了很多 connector 来保证 input 数据源…

永春堂1300系统开发|解析永春堂1300模式商城的五大奖项

电商平台竞争越来越激烈&#xff0c;各种营销方式也是层出不穷&#xff0c;其中永春堂1300营销模式&#xff0c;以其无泡沫和自驱动性强等特点风靡一时。在这套模式中&#xff0c;虽然单型价格差异较大&#xff0c;但各种奖励的设计&#xff0c;巧妙的兼顾了平台和所有会员的利…

【C语言】float 关键字

&#x1f6a9;write in front&#x1f6a9; &#x1f50e;大家好&#xff0c;我是謓泽&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f3c5;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4…

编程课的PPT

编程课 第一讲 主讲: 郝老师 一 什么是程序&#xff1f; 二 程序能做什么&#xff1f; 三 程序的那些事 一 什么是程序&#xff1f; 计算机程序是一组计算机能识别和执行的指令 一 什么是程序&#xff1f; “计算机程序是一组计算机能识别和执行的指令”上面的这句话是啥意思呢…

【Java|golang】1487. 保证文件名唯一---golang中string方法的坑

给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名&#xff0c;因此如果新建文件夹使用的文件名已经被占用&#xff0c;系统会以 (k) 的形式为新…

ACM---大一第三周周赛(Floyd算法+并查集算法学习周)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石.CSDN &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;ACM周训练题目合集.CSDN &#x1f4ac;总结&#xff1a…

【python】JSON数据类型与Python数据类型之间的转化

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录JSON格式文件JSON格式序列化与反序列化作用JSON常用数据结构键值对的集合值的有序列表JSON数据类型与Python数据类型之间的转化JSON格式和python的区别读写json文件dump 把python 写到json文件load 把json写…

王道计算机组成原理课代表 - 考研计算机 第七章 输入输出系统 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 “输入输出系统” 章节知识点总结的十分全面&#xff0c;涵括了《计算机组成原理》…

阿里云(CentOS)中MySQL8忘记密码的解决方法

阿里云(CentOS)中MySQL8忘记密码的解决方法 方法 在 skip-grant-tables 模式下启动 MySQL&#xff0c;该模式下启动 MySQL 时不启动授权表功能&#xff0c;可以直接免密码登录 实现 编辑 /etc/my.cnf 文件 vim /etc/my.cnf在 [mysqld] 区域末尾添加配置&#xff0c;设置免密…

数组之双指针题

文章目录一、最长连续不重复子序列1.题目介绍2.思路3.二、长度最小的子数组1.题目介绍2.思路3.代码三、数组元素的目标和1.题目介绍2.思路3.代码总结其实在之前我写过不少双指针得题解&#xff0c;刷题专练之数组移除元素 刷题专练之翻转题练习这两篇文章的题解基本就是双指针法…

Protobuf简介

Protobuf简介 1. Protocol Buffers1.1. 什么是Protocol Buffers?1.2. 选择你最喜欢的语言1.3. 如何开始2. Protocol Buffer Basics: C++2.1. 问题领域2.2. 在哪里找到示例代码2.3. 定义协议格式(Defining Your Protocol Format)1. Protocol Buffers Protocol Buffers(协议缓冲…

SpringBoot项目的快速创建方式(包含第一个程序的运行)

目录 一、IDEA所用的版本以及插件 二、操作步骤 一、IDEA所用的版本以及插件 idea的版本&#xff1a; idea2022版本下载安装配置与卸载详细步骤&#xff08;包含运行第一个java程序教程&#xff09;_idea2022下载_云边的快乐猫的博客-CSDN博客 如果英文看不懂就点击&#x1…