C语言百日刷题第九天

news2025/7/20 13:02:03

前言

今天是刷题第9天,放弃不难,但坚持一定很酷~
快来跟我一起刷题吧。
加油,一起努力进步
在这里插入图片描述

C语言百日刷题第九天

  • 前言
  • 76.计算偶数的所有质因子
  • 77. 提取不重复的整数
  • 78.二进制中1的个数
  • 79.猴子分桃
  • 80.百钱买百鸡

76.计算偶数的所有质因子

输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:180
输出:2 2 3 3 5
先普及一下什么叫做质因子

在这里插入图片描述

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    //最大除数应该是小于等于输入的自然数的平方根
    for (int i = 2; i <= sqrt(n); i++)
    {
        while (n % i == 0)
        {
            printf("%d ", i);
            n = n / i;
        }
    }
    if (n != 1)
        printf("%d ", n);
    return 0;
}

77. 提取不重复的整数

在这里插入图片描述


方法一:除以10求余,得到每一位数字,放入数组之前与数组中已存在的数据对比,不重复的数据才能存入数组

#include<stdio.h>
#include<string.h>
int main()
{
    int num=0,size=0,flag=1;
    char str[10000]={0},ch;
    scanf("%d",&num);
    for(;num%10 != 0;num=num/10)//外for循环逆序读取每一位数字
    {
        flag=1;
        ch = num%10 + '0';//整型->字符
        for(int j=0;j<=size;j++)//内for循环将每一位数字和数组中的比较
            if(str[j]==ch)
            {
                flag=0;//数字重复标志
                break;
            }
        if(flag)
        {
            str[size++]=ch;//数组大小size动态增加
        }
    }
    printf("%s",str);
    return 0;
}

方法二:首先循环提取输入数的最低位,维护一个大小为10的数组,判断数组中是否有提取的这个数位。

  • 如果有则把输入数除等于10,继续提取下一数位。
  • 如果没有仍要把输入数除等于10,并将此数位添加到数组中,结果乘10再加上此数位.
  • 提取到最高位即可输出结果
#include<stdio.h>
int main()
{
    int num = 0,result=0;
    int arr[10] = {0};
    scanf("%d",&num);
    while(num != 0)
    {
        if(arr[num%10]==0)
        {
            arr[num%10]=1;
            result=result*10+(num%10);
        }
   
        num=num / 10;
    }
    printf("%d\n",result);
}

78.二进制中1的个数

在这里插入图片描述


方法一:取余求解

#include<stdio.h>
int main()
{
	int input = 0;
	int count = 0;
	scanf("%d", &input);
	while (input)
	{
		if (input % 2 == 1)
		{
			count++;
		}
		input /= 2;
	}
	printf("%d\n", count);
	return 0;
}

方法二:位运算

#include<stdio.h>
int main()
{
    int input = 0;
    scanf("%d", &input);
    int count = 0;
    while (input)
    {
        input &= (input - 1); 
        count++;
    }
    printf("%d\n", count);
    return 0;
}

& : 按位与:转化为2进制后相同位置数有0则为0
| : 按位或:转化为2进制后相同位置数有1则为1
^ : 按位异或 :转化为2进制后相同位置相同则为0相异则为1

79.猴子分桃

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?
分析:猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。这就意味着先将桃子数减去1,然后再拿走五分之一数量的桃子,只剩下五分之四的桃子,并且下一次分桃又重复着这种操作,总共进行了5次。自然而然的想到使用循环解决。

#include<stdio.h>
int main ()
{
int monkey = 1;
int peach = 1;
int count = 1;
while (monkey <= 5) 
{
   
    if (peach % 5 == 1) 
    {
        peach = (peach / 5) * 4;
        monkey++;
    }
    else 
    {
        count++; 
        peach = count; 
        monkey = 1; 
    }
}
printf("桃的最小总数为:%d", count);
}

80.百钱买百鸡

中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?翻译成人话就是:
公鸡5元一只;母鸡3元一只;雏鸡一元3只。百钱买百鸡,问鸡翁、母、雏各几只?
分析:这题共有三个限制条件,3 种鸡的钱数总和为 100。 3 种鸡的数量之和为 100小鸡数必须是 3 的倍数
使用循环,满足三种情况的全部枚举出来就好了。

#include <stdio.h>
int main()
{
    int a,b,c;
    for (a=0;a<=20;a++)
    {
        for(b=0;b<=33;b++)
        {
            c=(100-5*a-3*b)*3;
            if(a+b+c==100)
                printf("公鸡是%d只,母鸡是%d只,雏鸡是%d只.\n",a,b,c);
        }
    }
}
 

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

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

相关文章

可防离职员工冒用身份,合合信息名片全能王与钉钉用数字名片打造安全“围栏”

名片全能王与钉钉发布数字名片&#xff1a;可防离职员工冒用身份&#xff0c;追踪营销线索 名片是人际交往中的一条纽带。秦汉有竹制的“谒”&#xff0c;唐代纸质的“名刺”也被沿用许久。如今&#xff0c;无实体的数字名片在商务人士中已十分普及&#xff0c;科技加持下&…

共享存储知识

文章目录一、架构图二、RAID&#xff08;廉价冗余磁盘整列&#xff09;三、存储操作四、FusionCompute对接存储五、添加数据存储时的选项六、磁盘配置模式七、磁盘模式八、快照九、FC-SAN一、架构图 SAN&#xff08;存储区域网络&#xff09; IP-SAN&#xff08;SCSI协议封装在…

Linux多线程C++版 线程基础 进程和线程关系 线程分类 Linux线程实现 线程表示

目录1.线程的基础2.进程和线程的关系3.线程分类 了解4.Linux线程实现5.线程标识1.线程的基础 进程是资源管理的最小单位&#xff0c;线程是程序执行最小单位。每个进程有自己的数据段&#xff0c;代码段和堆栈段。线程通常叫做轻型的进程&#xff0c;它包含独立的栈和CPU寄存器…

[附源码]java毕业设计基于的楼盘销售管理系统论文2022

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SpringCloud Gateway 自定义Filter用代码怎么写?别再说我只会配置基本Filter了,来学学如何定制Filter过滤器

文章目录学习SpringCloud Gateway自定义全局Filter&#xff08;GlobalFilter&#xff09;ServerWebExchange自定义非全局Filter&#xff08;GatewayFilter&#xff09;学习SpringCloud Gateway SpringCloud Gateway使用及原理分析大全——断言及过滤器&#xff08;上篇&#x…

【openwrt】libubox组件——uloop_process

uloop_processuloop_process主要数据结构struct list_head processesstruct uloop_processuloop_process主要函数uloop_handle_processesuloop_process原理uloop_process使用示例uloop_process 是 Libubox 提供的一个进程管理工具,它主要用来等待子进程工作的结束&#xff0c;一…

DAP和IAP

DAP和IAP DAP模型&#xff1a;通过训练样本学习一组属性分类器直接预测测试样本的属性。 IAP模型&#xff1a;通过训练样本的类别&#xff0c;&#xff08;多分类器&#xff09;间接预测测试样本的属性。 两者之间的区别&#xff1a;属性分类器的学习方式&#xff0c;DAP是一组…

labelme做标注

1.anaconda 安装 anaconda下载地址如下&#xff1a; 官网 一直下一步&#xff0c;注意下面这个地方 同时手动配置环境变量&#xff0c;下面三个路径需添加 Anaconda安装路径 Anaconda安装路径\Scripts Anaconda安装路径\Library\bin 最后测试一下 cmd 依次输入 conda…

云原生周刊 | 百家争鸣的边缘计算时代即将到来?| 2022-11-14

今年的 KubeCon 大会有一个很奇怪的现象&#xff0c;到场的几乎都是小公司&#xff0c;没有大公司。可能是因为这些大公司恰好在这个时候都有自己的活动要举办&#xff0c;也有可能是他们正在快马加鞭研发他们的边缘计算方案&#xff1f;因为 Gartner 预测到 2025 年&#xff0…

Mybatis—LanguageDriver

LanguageDriver主要用于构造SqlSource和ParameterHandler&#xff0c;从LanguageDriver在Mybatis中调用链路来看&#xff0c;Configuration#newParameterHandler通过调用LanguageDriver#createParameterHandler完成构建ParameterHandler&#xff0c;通过调用LanguageDriver#cre…

缺流量时代,App们需要如何突围?

距离上一个现象级的应用抖音出现已经过去了6年&#xff0c;如今App市场万马齐喑&#xff0c;巨头创新不断&#xff0c;中小团队异军突起的App黄金时代一去不返。 你的App里多久没有出现过一款新应用了&#xff1f; 距离上一个现象级的应用抖音出现已经过去了6年&#xff0c;那…

基于加权对立和贪婪搜索多模态工程问题的黑猩猩优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【网络安全】处理应急响应的简单方法

目录 一、应急响应 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;分类 二、如何处理 &#xff08;1&#xff09;查看日志 &#xff08;2&#xff09;封堵ip &#xff08;3&#xff09;代码加固 &#xff08;4&#xff09;安装防火墙 &#xff08;5&#x…

sqli通关笔记

sqli通关学习笔记 目录sqli通关学习笔记Less-1Less-2Less-3Less-4Less-5Less-5Less-6导入导出文件相关的操作Less-7Less-8Less-9Less-10Less-11Less-12Less-13Less-14Less-15Less-16增删改函数介绍Less-17HTTP 头部介绍Less-18Less-19Less-20Less-21Less-22高级注入&#xff0c…

【网络篇】第十四篇——HTTP协议(一)(附带电视剧李浔同款爱心+端口号被恶意占用如何清除)

目录 HTTP简介 基本性质 URI和URL urlencode和urldecode HTTP协议格式 HTTP请求协议格式 HTTP响应协议格式(爱心代码端口清理) ​ HTTP简介 超文本传输协议是一个用于传输超媒体文档的应用层协议。它是为web浏览器与web服务器之间的通信而设计的&#xff0c;但也可以用…

【DPDK】使用 Open vSwitch * 采用 DPDK 帧间 VM NFV 应用程序

一、概述 数据面开发套件 (DPDK)提供高性能数据包处理库和用户空间驱动程序。从Open vSwitch (OVS)版本 2.4 (http://openvswitch.org/releases/NEWS-2.4.0)开始&#xff0c;我们可以进行 OVS 中&#xff0c;使用 DPDK 优化 vHost 路径。DPDK 支持后的 OVS 中可用的 2.2 版。 …

JavaSE——包装类、装箱与拆箱

目录 一、基本概念 1.1 八种包装类及使用场景 1.2 装箱与拆箱的概念 二、以Integer包装类为例 2.1 Integer的构造方法 2.2 通过常量获取最大值与最小值 2.3 自动装箱和自动拆箱&#xff08;非常重要的面试题&#xff09; 三、Integer常用方法 3.1 手动拆箱&#xff08;过时…

LeetCode-剑指44-数字序列中某一位的数字

1、找规律 我们通过找规律可以发现&#xff0c;当位数为xxx时&#xff0c;其占用的位数为x910x−1x\times9\times10^{x-1}x910x−1。因此我们可以不断循环并增大位数xxx直至n−x<x910x−1n-x<x\times9\times10^{x-1}n−x<x910x−1&#xff0c;此时数字落在剩余的位数…

HTTP协议加强

HTTP协议加强[TOC](HTTP协议加强)一、HTTP协议简介1.1 什么是通信1.2 什么是通信协议1.3 HTTP二、HTTP请求2.1 什么是HTTP请求消息2.2 HTTP请求消息的组成部分三、HTTP响应3.1 什么是HTTP响应消息3.2 HTTP响应消息的组成部分四、HTTP请求方法4.1 什么是HTTP请求方法4.2 HTTP的请…

接口性能调优的方法,这有11种,你知道几种?

​当我们谈到“软件测试”时&#xff0c;是指软件测试的相关工作&#xff0c;如单元测试、集成测试、系统测试等&#xff0c;但不局限于动态测试&#xff0c;也可以包括静态测试——需求评审、设计评审、代码评审和借助工具进行代码静态分析。 接口性能调优共11种方法&#xf…