pta乙级题目day1

第1天:输入输出与运算(6题)

1001 害死人不偿命的(3n+1)猜想(基础运算)★

1006 换个格式输出整数(格式化输出)★

1016 部分A+B(数字提取)★★

1046 划拳(多输入处理)★★

1066 图像过滤(多条件输出)★★

1081 检查密码(输入验证)★★★

 

1001 害死人不偿命的(3n+1)猜想(基础运算)★

题目翻译:一个数如果是偶数就砍掉一半,反之如果是奇数,就3n+1再砍掉一半,需要砍几下才使最终结果为1

思路:设置计数器count记录砍几下,对于外层,需要用while循环来判断,条件是n!=1时,继续该循环,内层用if-else条件判断语句来处理偶数和奇数的条件

 

注意:

①3n+1写成3*n+1

②不能在while循环条件里面用两个if条件来判断,应该用if-else结构,原因是假设n为2时,第一个if语句将n变为了1,因为1为奇数,进入第二个if条件,(3*1+1)÷2为2,陷入了死循环,所以不能用(偶数在除以2后有机会会变为奇数,继续进入下一个if语句)

知识点:偶数的判断条件n%2==0,奇数的判断条件n%2==1

 

 

1006 换个格式输出整数(格式化输出)★

题目翻译:百位数字是几,就打印出几个B,十位数字是几,就打印出几个S,个位数字是n,就依次打印出从1到n

思路:想打印出B和S的数量,我们首先要知道百位和十位数字是什么,所以我们使用数字分解的方法,利用除法和余数的性质,分解百位十位个位的数字,接着用for循环将它们打印出来

个位的打印方法:先设置一个计数器,循环一次加1并打印一次,直到循环结束

知识点:一个数/10,除去最后一位(eg:100/10=10,999/10=99)

一个数%10得到最后一位(107%10=7)

 

 

1016 部分A+B(数字提取)★★

题目翻译:给定一个数,并给出DA,有多少DA,就打印多少次DA,得到PA

思路:想要知道一个数中有多少个DA,我们可以将这个数的所有数字进行分解并逐个逐个数字去和DA进行比对。

如何分解所有数字,可以利用循环加分解数字的方法

while(n>0)

{if(n%2==DA){countDA++;}

n/=2;

}

如何打印出相同的数字方法(如666,111)

int PA;

外层利用for循环,内层写PA=10*PA+DA

 

1046 划拳(多输入处理)★★

题目翻译:如甲或乙划出的数字等于两人喊出数字之和,则输者喝酒,若两人同赢或同输,则进入下一轮,问甲和乙各自喝酒的数量

思路:外层用for循环,内层用if语句进行判断,当甲胜乙败时,乙喝酒数加1,当乙胜甲败时,乙喝酒数加1,注意,在写if条件时,不能只写甲胜或乙胜,要排除二者都胜的情况

 

1066 图像过滤(多条件输出)★★

题目翻译:将灰度值在指定范围内的所有像素颜色用同一种颜色替代

思路:设置一个分辨率数组存储每行的灰度值,当灰度值位于给定的区间时,替换当前数组的值,最后按要求把数组的值输出来。

为什么要用数组?因为题目是每行给出N个灰度值进行输入,可以将灰度值存储起来进行替换,输出时可以将所有灰度值输出出来

输出思路:先输出每一行的第一个数,后输出空格+数字

1081 检查密码(输入验证)★★★

翻译题目:用户设置的密码需不少于6个字符,必须要有字母和数字,只能有字母,数字和小数点

思路:

设置一个字符串数组用来存储用户输入的密码

优先检查长度,用strlen函数来得到字符串的长度,因为如果密码太短,无论是否合法都报错,当长度出问题后,剩下的都不用检查,所以运用continue来跳过本行字符串的检查

当长度没有问题后,继续检查字符,字母和数字,因为是判断有无字母和数字,所以我们可以设置一个判断有无字母数字的变量进行检查,当有时则置为1

程序:此题注意点很多

#include<stdio.h>

#include<string.h>

int main()

{ //输入一个正整数N

    int n=0;

    scanf("%d",&n);

    getchar(); // 吸收整数后的换行符

    //设置字符串数组

    char password[100]={"0"};//scanf会在空格处停止读取,导致密码被截断

    //scanf不会读取换行符,所以移除换行符的代码是多余的

    //用fgets读取整行

   // fgets能正确处理包含空格的密码(例如"hello world")

    //储存密码

    for(int i=0;i<n;i++)

    {

       // scanf("%s",password);

        //getchar();

        fgets(password,sizeof(password),stdin);//读取整行

         // 移除换行符

        //正确的换行符处理避免密码被截断或包含多余字符

        int len=strlen(password);

        if(len>0&&password[len-1]=='\n')

        {

            password[len-1]='\0';

            len--;

        }

        //检查长度

        if(len<6)

        {

            printf("Your password is tai duan le.\n");

          continue;

        }

        

        //设置是否存在数字变量

        int shuzi=0;

        //设置是否存在字符变量

        int zifu=1;

        // 设置是否存在字母变量

        int zimu=0; 

        //判断是否存在字母

        for(int j=0;j<len;j++)//使用j < len代替依赖于空字符的password[j]条件避免访问未定义内存区域

 

        {

            if((password[j]>='A'&&password[j]<='Z')||(password[j]>='a'&&password[j]<='z'))

            {

                zimu=1;

            }

           else if(password[j]>='0'&&password[j]<='9')

            {

                shuzi=1;

            }

            else if(password[j]!='.')

            {

                zifu=0;

                break;

            }

       }

        if(zifu==0)

        {

            printf("Your password is tai luan le.\n");

        }

       else if(zimu==0&&shuzi==1)

        {

            printf("Your password needs zi mu.\n");

        }

        else if(zimu==1&&shuzi==0)

        {

            printf("Your password needs shu zi.\n");

        }

        else

        {

            printf("Your password is wan mei.\n");

        }

        

    }

    //判断是否存在数字

   // 判断是否存在不合法字符

    return 0;

}

 

 

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

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

相关文章

在VSCode中配置.NET项目的tasks.json以实现清理、构建、热重载和发布等操作

在 VS Code 中配置 .NET 开发任务的完整指南 引言 重要提醒&#xff1a;对于 .NET 开发&#xff0c;强烈推荐使用 Visual Studio&#xff0c;它提供了最完整和稳定的开发体验。如果你像我一样"蛋疼"想要尝试 VS Code&#xff0c;请确保安装了 C# 开发扩展包&#x…

EmEditor文本编辑器v25.3.0专业版,专业文本编辑,高亮显示,无限撤消

[软件名称]: EmEditor文本编辑器v25.3.0专业版 [软件大小]: 37.7 MB [软件大小]: 夸克网盘 | 百度网盘 软件介绍 EmEditor 是一款功能强大且非常实用的文本编辑器。它启动速度快&#xff0c;完全可以替代 Windows 自带的记事本&#xff0c;轻松应对日常文本编辑任务。它对 …

【spring security】权限管理组件执行流程详解

&#x1f3af; 权限管理组件执行流程详解 &#x1f3d7;️ 组件架构图 ┌─────────────────────────────────────────────────────────────┐ │ HTTP请求 …

redis怎么保障双写一致性

redis做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;&#xff08;双写一致性&#xff09;候选人&#xff1a;嗯&#xff01;就说我最近做的这个项目&#xff0c;里面有xxxx&#xff08;根据自己的简历上写&#xff09;的功能&#xff0c;需要让数据库与red…

异常值检测:孤立森林模型(IsolationForest)总结

目录一、前言二、孤立森林算法2.1 算法简介2.2 基本原理2.3 算法步骤2.4 异常分数计算方式2.5 python调用方式三、python代码示例四、小结五、参考学习一、前言 近期在研究构建寿命预测模型&#xff0c;相信很多数据人都懂建模的过程&#xff0c;其实有80%的时间都是在和数据处…

Docker容器化部署实战:Tomcat与Nginx服务配置指南

部署Tomcat搜索镜像 使用以下命令搜索可用的Tomcat镜像&#xff1a;docker search tomcat拉取镜像 拉取官方Tomcat镜像&#xff1a;docker pull tomcat创建专用目录 为Tomcat配置和数据创建专用目录&#xff1a;mkdir tomcat运行临时容器并复制配置文件 启动临时容器以复制配置…

Go语言实战案例-使用SQLite实现本地存储

在开发工具类软件、桌面应用或者移动端时&#xff0c;我们经常需要一个轻量级数据库来做 本地存储。相比 MySQL、Postgres 等服务型数据库&#xff0c;SQLite 体积小、零配置、单文件存储&#xff0c;非常适合这种场景。Go 语言通过 GORM SQLite 驱动 就能轻松实现。本文将带你…

云计算学习100天-第23天

主机192.168.88.5 安装nginx#安装编译工具&#xff0c;正则表达式依赖包&#xff0c;SSL加密依赖包 yum -y install gcc make pcre-devel openssl-devel tar -xf /root/lnmp_soft.tar.gz cd lnmp_soft/ tar -xf nginx-1.22.1.tar.gz cd nginx-1.22.1/ #指定安装路径&…

【生成树+环】题解:P3907 环的异或_图论_环_异或_搜索_算法竞赛_C++

推销洛谷博客&#xff1a;https://www.luogu.com.cn/article/znmr9iu9 Link&#xff1a;Luogu - P3907 这里默认题目中指的环都是“简单环”&#xff08;即没有“环套环”的情况&#xff09;。 众所周知&#xff0c;树是图的一种特殊情况&#xff0c;且一定无环。如果我们想…

数据库优化提速(二)排序优化之搜索大数据酒店,进销存AI—仙盟创梦IDE

在 MySQL 数据库管理中&#xff0c;排序操作对于数据的有效展示和分析至关重要。本文将以一个实际的 SQL 查询为例&#xff0c;深入探讨排序优化方案&#xff0c;并结合进销存、酒店、知识库等大数据场景&#xff0c;阐述这些优化策略的应用价值。原始SELECT 应用编号, 应用序列…

Linux之Ansible自动化运维(二)

一、ansible Playbook应用由于服务器数量很多&#xff0c;配置信息比较多&#xff0c;因此可以利用Ansible Playbook编写任务自动化与流程化脚本Playbook 由一个或多个play组成的列表&#xff0c;play的主要功能Ansible中Task定义好的角色&#xff0c;指定剧本对应的服务器组二…

ArrayList线程不安全问题及解决方案详解

问题背景在多线程编程中&#xff0c;我们经常会遇到集合类的线程安全问题。Java中的ArrayList是一个常用的集合类&#xff0c;但它不是线程安全的。当多个线程同时操作同一个ArrayList实例时&#xff0c;可能会出现各种不可预料的问题。问题演示List<String> list new A…

车辆方向数据集 - 物体检测

关于数据集 包含超过50,000 张图像中具有方向的车辆的 50,000 多万个注释。它通过同时提供车辆类别和方向来减少对方向进行分类的辅助神经网络的需求。 预训练权重 我们将继续添加在车辆方向数据集和合成车辆方向数据集上训练的各种对象检测模型。如果您需要一些特定的预训练权…

Nextcloud搭建教程:使用Docker在腾讯云服务器上自建私人云盘

更多云服务器知识&#xff0c;尽在hostol.com你那百兆光纤的宽带。你是否也曾看着自己最珍贵的家庭照片、最私密的个人文档&#xff0c;静静地躺在某个科技巨头的服务器上&#xff0c;感到过一丝丝的不安&#xff1f;你的数据&#xff0c;到底被如何“阅读”和“分析”&#xf…

【操作记录】MNN Chat Android App 构建笔记(二)

&#x1f4d2; MNN Chat Android App 构建笔记 一、背景知识MNN 简介 MNN 是阿里开源的轻量级深度学习框架&#xff0c;支持 Android / iOS / Linux / Windows。提供推理、LLM、Vision、Audio 等模块。Android App 里用到的是 Java JNI 调用 MNN 库。CMake NDK 的作用 CMake&…

如何在 Axios 中处理多个 baseURL 而不造成混乱

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

AP服务发现PRS_SOMEIPSD_00255 的解析

[PRS_SOMEIPSD_00255 ] 「SOME/IP-SD头部的重启标志&#xff0c;对于重启后发出的所有报文&#xff0c;都应设置为 1&#xff0c;直至 SOME/IP头部中的会话 ID (Session-ID) 回绕并因此再次从 1 开始。在此回绕之后&#xff0c;重启标志应设置为 0。」(RS_SOMEIPSD_00006)核心含…

纯手撸一个RAG

纯手撸一个RAGRAG基本流程第一阶段&#xff1a;数据预处理&#xff08;索引&#xff09; - 构建知识库第二阶段&#xff1a;查询与生成&#xff08;推理&#xff09; - 回答问题总结Chunk介绍Chunk框架的介绍Chunk核心概念选择分块策略和框架如何选择分块框架Python代码实现第一…

视觉语言对比学习的发展史:从CLIP、BLIP、BLIP2、InstructBLIP(含MiniGPT4的详解)

前言 本文一开始是属于此文《图像生成(AI绘画)的发展史&#xff1a;从CLIP、BLIP、InstructBLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion(含ControlNet详解)》的&#xff0c;后独立成本文 第一部分 从CLIP、BLIP1、BLIP2到InstructBLIP 1.1 CLIP&#xff1a;基于对比文本…

HTTP代理与SOCKS代理的区别、应用场景与选择指南

在互联网日常使用与跨境业务中&#xff0c;HTTP代理 和 SOCKS代理 是两种常见的网络代理方式。无论是跨境电商、社交媒体账号运营、数据采集&#xff0c;还是科学访问海外资源&#xff0c;都需要选择合适的代理协议。什么是HTTP代理&#xff1f;定义HTTP代理 是基于 HTTP协议 的…