C练习题(1)

news2024/11/29 2:51:51

变种水仙花(来自牛课网)

题目

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

例如:

655 = 6 * 55 + 65 * 5

1461 = 1*461 + 14*61 + 146*1

求出 5位数中的所有 Lily Number。

输入描述

输出描述

一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。

解题方法:

该题目主要的考察点是:如何把一个数字分成两部分?

例如:1234 可以分成 123*4 12*34 1*234 

123*4:1234除10可以得到123,1234%10可以得到4

12*34:1234除100可以得到12,1234%100可以得到34

1*234:1234除1000可以得到1,1234%1000可以得到234

因为要求五位数中的所有水仙花数,例如12345,我们可以这样处理:

​
for(int j = 10; j <= 10000; j *= 10)
{
    //i = 12345
    sum += (i / j) * (i % j);
}

if(sum == i)
{
    printf("%d ", i);
}

​

那么难点解决了,我们来把代码补充完整:

int main(void)
{
    int i = 0;

    for (i = 10000; i < 100000; i++)
    {
        int sum = 0;
        for (int j = 10; j <= 10000; j *= 10)
        {
            //i = 12345
            sum += (i / j) * (i % j);
        }

        if (sum == i)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

完美解决

序列中删除指定数字(来自牛课网)

描述

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变

数据范围:序列长度和序列中的值都满足 1≤n≤50

输入描述:

第一行输入一个整数(0≤N≤50)

第二行输入N个整数,输入用空格分隔的N个整数

第三行输入想要进行删除的一个整数

输出描述:

输出为一行,删除指定数字之后的序列

解题过程:

1. 第一行输入一个整数(0≤N≤50)

该步骤实现简单,不作过多解释:

int n = 0;
scanf("%d", &n);

2.第二行输入N个整数,输入用空格分隔的N个整数

易实现,不作解释:

int arr[50] = { 0 };
//用来存入数据

for(int i = 0;i < n;i++)
{
    scanf("%d", &arr[i]);
}

3.第三行输入想要进行删除的一个整数

我们先输入要删除的数据

int del = 0;
scanf("%d", &del);

假定输入的数字是:1、2、3、4、5、9

123459

我们此时可以先定义两个指针变量 i 和 j ,我们对输入的数据来逐一分析,若是数据不等于输入的数据,则 i++ j++ ,若是解引用得到数据等于输入的数据,那么 j 指针在此停留,而 i 指针继续向后走 , 再将 i 指针解引用得到的值覆盖掉 就、j 指针停留位置的数据,然后 i 指针和 j 指针继续向后走,每走一次都用 i 指针解引用所表示的值覆盖掉 j 指针解引用所表示的值。但是我们发现。当我们对数组中的最后一个元素进行覆盖操作时,最后一个本身数据不会被覆盖,所以最后的一个数据会存在两次,我们此时打印数组的时候就需要少打印最后那一位数。我们来用代码实现:

int i = 0;
int j = 0;
for( ; i < n; i++)
{
    if(arr[i] != del)
    {
    arr[j] = arr[i];
    //该步骤相当于自己和自己赋值
    j++;
    }
}

走完这个for循环,我们再把数组打印一遍,此时我们需要少输出1位,因为最后一位重复了

for(int k = 0; k < j; k++)
{
    printf("%d ", arr[k]);
}
    

到这里程序就写完了,我们把各个模块连接起来:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//删除数组中指定的元素
int main(void)
{
    int n = 0;
    scanf("%d", &n);

    int arr[50] = { 0 };
    //用来存入数据

    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }

    int del = 0;
    scanf("%d", &del);

    int i = 0;
    int j = 0;
    for (; i < n; i++)
    {
        if (arr[i] != del)
        {
            arr[j] = arr[i];
            //该步骤相当于自己和自己赋值
            j++;
        }
    }

    for (int k = 0; k < j; k++)
    {
        printf("%d ", arr[k]);
    }
    return 0;

}

同样也是完美运行

结尾

那么本节我们关于C语言的两道习题的所有内容就到此结束了,希望能给你带来帮助

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

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

相关文章

IDEA 如何快速创建 Springboot 项目,面试题kafka数据丢失问题

&#xff08;3&#xff09;填写并选择&#xff1a; 1&#xff0c;2 处&#xff1a;是 Maven 工程的两个属性唯一标识&#xff0c;随意填。 3处&#xff1a;类型选择 Maven 项目 4处&#xff1a;语言选择 Java 5处&#xff1a;打包方式选择 Jar 6处&#xff1a;Java版本选择…

KeepAlived使用介绍

目录 1、Introduce 2、基本使用 &#xff08;1&#xff09;安装 &#xff08;2&#xff09;配置文件 &#xff08;3&#xff09;使用教程 1、Introduce keepalived是一个用于实现高可用性和负载均衡的开源软件。它提供了一种轻量级的方式来管理多个服务器&#xff0c;并确保…

【Spring Boot 源码学习】ConditionEvaluationReport 日志记录上下文初始化器

《Spring Boot 源码学习系列》 ConditionEvaluationReport 日志记录上下文初始化器 一、引言二、往期内容三、主要内容3.1 源码初识3.2 ConditionEvaluationReport 监听器3.3 onApplicationEvent 方法3.4 条件评估报告的打印展示 四、总结 一、引言 上篇博文《共享 MetadataRe…

【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】

目录 简述 开始 操作系统环境下的程序运行 裸机环境下的程序运行 程序入口main()函数分析 BSS段的小提示 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不…

Python 后端 Flask 使用 Flask-SocketIO、前端 Vue3 实现长连接 Websocket 通信详细教程(更新中)

Flask 安装 Flask-Socketio Flask-SocketIO 第三方库使 Flask 应用程序可以实现客户端和服务器之间的低延迟双向通信。客户端应用程序可以使用 Javascript、Python、C、Java 和 Swift 中的任何 SocketIO 客户端库或任何其他兼容客户端来建立与服务器的永久连接。 Flask-Socke…

施耐德 PLC 控制系统 产品 + 软件总体介绍 2020

参考 2020.7 官方说明视频&#xff1a;https://www.bilibili.com/video/BV1Mi4y1G7Qc/ 总体说明 施耐德作为工业控制界巨头&#xff08;公认的几大巨头&#xff1a;西门子、AB、施耐德&#xff09;&#xff0c;PLC 控制器产品线很庞大&#xff0c;涵盖了高中低的完整产品线&…

代码随想录Day24:回溯算法Part1

回溯算法理论&#xff1a; Leetcode 77. 组合 这道题其实有点绕的我头晕&#xff0c;对于start index的解释我能够理解&#xff0c;但是我很难去想清楚他是如何在一次次递归中变化的因为他在for循环外面扮演我们每一次在一个数字找完了他开头的所有组合之后&#xff0c;就把st…

永磁同步电机PMSM和直流无刷电机BLDCM整理

刚完成的永磁同步电机的助力转向项目&#xff0c;接下来又遇到一个直流无刷电机的项目。刚好有时间将两个电机控制的异同和经典的控制方案总结一下。首先解释一下PMSW和BLDCM的含义。PMSW(Permanent Magnet Synchronous Motor)永磁同步电机的缩写&#xff1b;BLDCM(BrushLess D…

Datacom HCIP笔记-OSPF协议 之三

从骨干区域传来的三类LSA不再传回骨干区域 VLINK 1、只要创建的VLINK的路由器都是ABR 2、VLINK永远属于区域0的链路。 3、VLINK只能在非骨干区域创建&#xff0c;只能跨越一个非骨干区域。 4、特殊区域不能创建VLINK 5、用于修复不连续的骨干区域 6、将非骨干区域和骨干区域直接…

财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

GridLayoutManager 中的一些坑

前言 如果GridLayoutManager使用item的布局都是wrap_cotent 那么会在布局更改时会出现一些出人意料的情况。&#xff08;本文完全不具备可读性和说教性&#xff0c;仅为博主方便查找问题&#xff09; 布局item: <!--layout_item.xml--> <?xml version"1.0&qu…

Python爬虫:爬虫常用伪装手段

目录 前言 一、设置User-Agent 二、设置Referer 三、使用代理IP 四、限制请求频率 总结 前言 随着互联网的快速发展&#xff0c;爬虫技术在网络数据采集方面发挥着重要的作用。然而&#xff0c;由于爬虫的使用可能会对被爬取的网站造成一定的压力&#xff0c;因此&#…

政安晨:【Keras机器学习实践要点】(十二)—— 迁移学习和微调

目录 设置 介绍 冻结层&#xff1a;了解可训练属性 可训练属性的递归设置 典型的迁移学习工作流程 微调 关于compile()和trainable的重要说明 BatchNormalization层的重要注意事项 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: T…

基于Uni-app的体育场馆预约系统的设计与实现

文章目录 基于Uni-app的体育场馆预约系统的设计与实现1、前言介绍2、开发技术简介3、系统功能图3、功能实现4、库表设计5、关键代码6、源码获取7、 &#x1f389;写在最后 基于Uni-app的体育场馆预约系统的设计与实现 1、前言介绍 伴随着信息技术与互联网技术的不断发展&#…

轻量应用服务器16核32G28M腾讯云租用优惠价格4224元15个月

腾讯云16核32G服务器租用价格4224元15个月&#xff0c;买一年送3个月&#xff0c;配置为&#xff1a;轻量16核32G28M、380GB SSD盘、6000GB月流量、28M带宽&#xff0c;腾讯云优惠活动 yunfuwuqiba.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云16核32G服务器租用价格 腾讯…

Nginx的反向代理

Nginx的反向代理 location ^~ /aaa {proxy_pass http://192.168.15.78/; } 1. 跨域 2.Nginx 代理服务器缓存 3.Nginx 负载均衡 4. 动静分离 Nginx的跨域 跨源资源共享 (CORS) 是一种机制&#xff0c;它使用额外的 HTTP 标头让用户代理获得访问来自不同来域的服务器上选定资…

怎么快速上手虚拟化(容器)技术——以 Docker 为例

Docker 整体介绍 Docker 是一种使用 Go 语言开发的容器工具。所谓容器&#xff0c;实际上是一种虚拟化技术&#xff0c;用于为应用提供虚拟化的运行环境&#xff0c;相较于虚拟机具有轻量级、低延迟的特性。 下面是对上述介绍的说明&#xff1a; 应用程序运行需要一定的依赖…

qtcreator的信号槽链接

在ui文件中简单创建一个信号槽连接并保存可以在ui_mainwindow.h下 class Ui_MainWindow 类 void setupUi(QMainWindow *MainWindow)函数 找到对应代码 QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(close())); 下拉&#xff0c;由于 class MainWind…

@Transactional使用细节

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 动态代理回顾 Spring的声明式事务管理是建立在 AOP 的基础之上的。Spring AOP是通过动态代理实现的。如果代理对象实现了接口&#xff0c;则使用JDK的动态代理&#xff1b;…

SpringBoot整合knife4J 3.0.3

Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-ui的ui皮肤项目。项目正式更名为knife4j,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为Swagger接口文档服务的通用性解决方案,不仅仅只是专注于前端Ui…