C练习题(1)

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

题目

变种水仙花数 - 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语言的两道习题的所有内容就到此结束了,希望能给你带来帮助

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Web】NSSCTF Round#20 Basic 两道0解题的赛后谈

目录 前言 baby-Codeigniter 组合拳&#xff01; 前言 本想着说看看go的gin框架就睡了的&#xff0c;r3师傅提醒说赛题环境已经上了&#xff0c;那不赶紧研究下&#x1f600; 主要来谈谈做题的心路历程 baby-Codeigniter 拿到题目的第一反应应该是&#xff1a;“什么是C…

[ESP32]:基于esp-modbus实现serial主机

[ESP32]&#xff1a;基于esp-modbus实现serial主机 开发环境 esp idf 5.1esp-modbus 1.0.13 使用如下指令添加组件&#xff0c;或者访问esp-modbus idf.py add-dependency "espressif/esp-modbus^1.0.13"Device parameters 对于master而言&#xff0c;需要理解的…

五、Yocto集成QT5(基于Raspberrypi 4B)

Yocto集成QT5 本篇文章为基于raspberrypi 4B单板的yocto实战系列的第五篇文章&#xff1a; 一、yocto 编译raspberrypi 4B并启动 二、yocto 集成ros2(基于raspberrypi 4B) 三、Yocto创建自定义的layer和image 四、Yocto创建静态IP和VLAN 本章节实操代码请查看github仓库&…

CVAE——生成0-9数字图像(Pytorch+mnist)

1、简介 CVAE&#xff08;Conditional Variational Autoencoder&#xff0c;条件变分自编码器&#xff09;是一种变分自编码器&#xff08;VAE&#xff09;的变体&#xff0c;用于生成有条件的数据。在传统的变分自编码器中&#xff0c;生成的数据是完全由潜在变量决定的&…

GridLayoutManager 中的一些坑

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

论文阅读: Visual Attention Network

Motivation 自注意力机制在2D自然图像领域面临3个挑战&#xff1a; 视二维图像为一维序列。对于高分辨率图像&#xff0c;二次复杂度消耗太大。只捕捉空间适应性&#xff0c;忽略通道适应性。 Contribution 设计了 Large Kernel attention(LKA)&#xff0c;包含卷积和自注意…

SpringBoot整合knife4J 3.0.3

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

受益于边缘计算的三个关键应用

边缘计算和 5G 网络正在改变物联网&#xff0c;增强跨多个领域的广泛应用的功能&#xff0c;并催生大量新兴应用。我们通过研究三个突出的用例来说明边缘计算的强大功能。 工业4.0智能工厂 工业 4.0 为制造商提供了基于灵活的工业环境提高生产力和盈利能力的愿景&#xff0c;…

5.vector容器的使用

文章目录 vector容器1.构造函数代码工程运行结果 2.赋值代码工程运行结果 3.容量和大小代码工程运行结果 4.插入和删除代码工程运行结果 5.数据存取工程代码运行结果 6.互换容器代码工程运行结果 7.预留空间代码工程运行结果 vector容器 1.构造函数 /*1.默认构造-无参构造*/ …

STM32 can通信部分函数注释

相关截图: CAN模式初始化函数:u8 CAN1_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode) //CAN初始化 //tsjw:重新同步跳跃时间单元.范围:CAN_SJW_1tq~ CAN_SJW_4tq //tbs2:时间段2的时间单元. 范围:CAN_BS2_1tq~CAN_BS2_8tq; //tbs1:时间段1的时间单元. 范围:CAN_BS…

IO流c++

IO流类库 输入输出流 #include <iostream> using namespace std;class InCount { public:InCount(int a 0, int b 0){c1 a;c2 b;}void show(void){cout << "c1" << c1 << "\t" << "c2" << c2 << …

PHP三种方式读取RSA密钥加解密、签名验签完整教程

目录 第一步、生成公私钥 第二步、三种方式读取RSA密钥 第1种&#xff1a;公私钥弄成一行&#xff0c;必须一行没有空格和换行 第2种&#xff1a;直接复制生成公私钥 第3种;复制密钥存储为.pem文件后缀 第三步、RSA加解密 第四步、RSA签名以及验证签名 第五步、封装完整…

Linux的开发工具(二):编译器gcc/g++与Linux项目自动化构建工具-Makefile

Linux的编译器-gcc/g 基本概念&#xff1a;gcc是专门用来编译c语言的&#xff0c;g可以编译c或c语言 问题一&#xff1a;gcc有时候为什么不能编译带有for循环的c语言源文件&#xff1f; 答&#xff1a;gcc版本过低会不支持for循环等c99标准下的内容 解决方式&#xff1a;gcc…

手搓 Docker Image Creator(DIC)工具(02):预备知识

此节主要简单介绍一下 Docker、Dockerfile 的基本概念&#xff0c;Dockerfile 对的基本语法&#xff0c;Windows 和 macOS 下 Docker 桌面的安装&#xff0c;Docker 镜像的创建和运行测试等。 1 关于 Docker Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包应用…

Open3D(C++) 基于随机抽样与特征值法的点云平面稳健拟合方法

目录 一、算法原理1、论文概述2、参考文献二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的GPT爬虫。 一、算法原理 1、论文概述 针对点云数据含有异常值且传统拟合方法拟合结果不理想的情…

《自动机理论、语言和计算导论》阅读笔记:p115-p138

《自动机理论、语言和计算导论》学习第 6 天&#xff0c;p115-p138 总结&#xff0c;总计 24 页。 一、技术总结 1.associativity and comutativity (1)commutativity(交换性): Commutativity is the property of an operator that says we can switch the order of its ope…

Acwing-3418 杨辉三角形

关于杨辉三角形的一些规律&#xff08;更详细地去看参考&#xff09;&#xff1a; 下面这些图都来自其他人所做图片 因为杨辉三角形是对称的&#xff0c;并且与二项式有关&#xff1a; 将左半部分(左半部分的编号肯定比右半部分小&#xff0c;不考虑右半部分&#xff09;一个斜…

如何区分相对路径 与 绝对路径?

在网页中有很多需要使用我们URL路径的场景&#xff0c;包括a标签的href、link标签的href、script标签的src、imag标签的src、form中的action、ajax请求的url等等等等。它们都可以使用相对路径和绝对路径来引入文件&#xff0c;那么&#xff0c;我们如何区分相对路径与绝对路径呢…

MATLAB | 绘图复刻(十六) | 弦图2.1.0版本更新——弦末端弧形块颜色单独设置

Hey, 本人自主开发的弦图绘制工具迎来2.1.0版本了&#xff1a;起因是有粉丝问我前两天发布的文章中这张图咋画&#xff1a; 我本来一想我开发的工具画弦图还是很简单的哇&#xff08;下面文章中有基本用法&#xff09; https://slandarer.blog.csdn.net/article/details/126458…

Vue tree自定义滚动条位置

贴一张效果图&#xff0c;我的效果不方便贴出来 实现支持&#xff1a; 1、懒加载 2、普通加载 下面贴关键思想&#xff1a; document有一个获取element元素的方法。 let element document.getElementById(tree); let arr document.querySelectorAll(".nodelModel&quo…