PTA-练习3

news2024/12/22 23:30:05

目录

实验4-2-3 换硬币

实验4-2-4 输出三角形字符阵列

实验4-2-5 输出整数各位数字

实验4-2-6 梅森数

实验4-2-7 找完数

实验4-2-9 水仙花数

实验6-2 英文字母替换加密(大小写转换+后移1位)

实验6-5 简单计算器

实验6-10 统计单词的长度


实验4-2-3 换硬币

//第一眼:好难,没思路
//第二眼:先给五分分配最多,然后两分,然后一分
//写个三层循环,然后凑出这么多钱就可以了
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){

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

    for(int a=money/5;a>0;a--){
        for(int b=money/2;b>0;b--){
            for(int c=money;c>0;c--){
                if(a*5+b*2+c==money){
                    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",a,b,c,a+b+c);
                    count++;
                }
            }
        }
    }
    printf("count = %d",count);
    return 0;
}


实验4-2-4 输出三角形字符阵列

//方法二:一共有n行,每行n个字母,写个双重循环
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
    int n;
    scanf("%d",&n);
    int count=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n+1-i;j++){
            printf("%c ",'A'+count);
            count++;
        }
        printf("\n");
    }
    
    return 0;
}

//有时候可以用简便方法
/*
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
    int n;
    scanf("%d",&n);
    switch(n){
        case 1:
            printf("A \n");
            break;
        case 2:
            printf("A B \n");
            printf("C ");
            break;
        case 3:
            printf("A B C \n");
            printf("D E \n");
            printf("F \n");
            break;
            //然后一直写道七
    }
    
    return 0;
}
*/

实验4-2-5 输出整数各位数字

//从高位到低位输出,好麻烦啊
//低位输出可以直接n%10,把结果保存到一个数组里面然后逆序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
    long n;
    scanf("%ld",&n);
    int A[100],i=0;

    if(n==0){
        printf("0 ");
    }
    while(n!=0){
        A[i]=n%10;
        i++;
        n=n/10;
        
    }
    while(i>0){
        printf("%d ",A[i-1]);
        i--;
    }
    return 0;
}

实验4-2-6 梅森数

//1不是素数
//梅森数不就是(2^n)-1
//从高位到低位输出,好麻烦啊
//低位输出可以直接n%10,把结果保存到一个数组里面然后逆序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
//构造一个函数sushu,如果是素数返回1,不是则返回0
//直接看2~~n-1之间有没有可以整除的
int sushu(int n){
    for(int i=2;i<n;i++){
        if(n%i==0){
            return 0;
        }
    }
    return 1;
}
int main(){
    int n;
    scanf("%d",&n);
    if(n==0||n==1){
        printf("None");
    }
    for(int i=2;i<=n;i++){
        if(sushu(pow(2,i)-1)){//是一个素数
            printf("%.lf\n",pow(2,i)-1);//!!!pow输出的是double类型
        }
    }
    return 0;
}


实验4-2-7 找完数

//找完数,    n=所有因子之和
//构造一个函数判断这个数是不是完数
int wanshu(int n){
    int sum=0;
    for(int i=1;i<n;i++){
        if(n%i==0){//i是因子
            sum=sum+i;
        }
    }
    if(sum==n){
        return 1;
    }else{
        return 0;
    }
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int flag=0;//用于标记有几个完数
    for(int i=m;i<=n;i++){
        if(wanshu(i)){
            flag++;
            printf("%d = 1",i);
            for(int j=2;j<i;j++){
                if(i%j==0){
                    printf(" + %d",j); 
                }
            }
            printf("\n");
        }//of if
    }
    if(flag==0){
        printf("None");
    }
    
    return 0;
}


实验4-2-9 水仙花数


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(){
    int n;
    scanf("%d",&n);
    int start=pow(10,n-1);
    int end=pow(10,n);
    for(int i=start;i<end;i++){
        if(water(i,n)){
            printf("%d\n",i);
        }
    }
    return 0;
}
//先构造一个函数判断水仙花数,水仙花数是指一个N位正整数(N≥3),
//它的每个位上的数字的N次幂之和等于它本身。
int water(int n,int wei){
    int flag=n;
    int sum=0;
    while(n>0){
        int i=n%10;
        sum=sum+pow(i,wei);
        n=n/10;
    }
    if(sum==flag){
        return 1;
    }else{
        return 0;
    }
}

实验6-2 英文字母替换加密(大小写转换+后移1位)

这题需要记住ascll码对应的值,A--65,a--97(大写字母+32=小写字母)

//ascll码:A--65,a--97
//

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main(){

    char str[100];
    gets(str);//gets函数输入一个字符串直到\n换行为止

    int n=strlen(str);
    for(int i=0;i<n;i++){
        if(str[i]>='a'&&str[i]<='y'){
            str[i]=str[i]-32+1;
        }else if(str[i]>='A'&&str[i]<='Y'){
            str[i]=str[i]+32+1;
        }else if(str[i]=='Z'){
            str[i]='a';
        }else if(str[i]=='z'){
            str[i]='A';
        }
    }
    puts(str);

    return 0;
}

实验6-5 简单计算器

//输入字符,遇到数字记录,遇到符号则把它和后面一位i相加
//上面的思路错误
//正确思路:先输入一个数字,然后输入一个字符,
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main(){

    int num,sum;
    char c;
    scanf("%d",&num);
    scanf("%c",&c);
    sum=num;
    int flag=0;
    
    while(c!='='){
        switch(c){
            case '+':
                scanf("%d",&num);
                sum=sum+num;
                break;
            case '-':
                scanf("%d",&num);
                sum=sum-num;
                break;
            case '*':
                scanf("%d",&num);
                sum=sum*num;
                break;
            case '/':
                scanf("%d",&num);
                if(num==0){
                    flag=1;
                }else{
                    sum=sum/num;
                }
                break;
            default:
                flag=1;
                break;
        }// of switch
        scanf("%c",&c);
    }
    if(flag){
        printf("ERROR");
    }else
        printf("%d",sum);
    
    
    return 0;
}


实验6-10 统计单词的长度


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

int main(){

    char c=getchar();
    int i=0;
    int flag=0,kaitou=1;
    
    while(c!='\n'){
        if(c!=' '){
            i++;
            flag=1;
        }
        if(c==' '){
            if(flag==1){
                printf("%d ",i);
                flag=0;
            } 
            i=0;
        }
        c=getchar();
    }
    if(i){
        printf("%d ",i);
    }

    return 0;
}

 

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

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

相关文章

财富池指标公式--通达信主力资金指标公式,主力资金流向怎么看?

今日分享的通达信主力资金指标公式&#xff0c;是一个分析主力资金进出的指标。 具体信号说明&#xff1a; 当紫色的起涨点主力资金线和红色的拉升资金同时上传0线&#xff0c;并且紫色的拉升线超过资金线&#xff0c;大盘进入派发阶段&#xff0c;后市看涨&#xff0c;是参考…

pinia 的选项式和组合式的不同写法和持久化的方法

pinia 是vue3推荐的状态管理插件&#xff0c;它对标的是vue2中使用的vuex pinia 的引入方法 npm 安装 pinia在 src/store/index.js 中 创建一个pinia 的实例&#xff0c;并导出 在项目中的 main.js 中引入 2 中的pinia 并且使用 app.use(pinia) main.js中 import pinia from…

100天精通Python(实用脚本篇)——第118天:基于selenium和ddddocr库实现反反爬策略之验证码识别

文章目录 专栏导读一、前言二、ddddocr库使用说明1. 介绍2. 算法步骤3. 安装4. 参数说明5. 纯数字验证码识别6. 纯英文验证码识别7. 英文数字验证码识别8. 带干扰的验证码识别 三、验证码识别登录代码实战1. 输入账号密码2. 下载验证码3. 识别验证码并登录 书籍推荐 专栏导读 …

第111讲:Mycat实践指南:固定Hash算法分片下的水平分表详解

文章目录 1.固定Hash算法分片的概念1.1.固定Hash算法的概念1.2.固定Hash算法是如何将数据路由到分片节点的 2.使用固定Hash算法分片对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现固定Hash算法分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分…

VMware虚拟机和主机之间无法复制粘贴,移动文件,重新安装vmware-tools变灰,VMware Tools继续运行脚本未能在虚拟机中成功运行。

起初&#xff0c;虚拟机只是无法和主机之间进行复制粘贴&#xff0c;移动文件。查询了很多资料,反反复复地安装卸载vmware-tools&#xff0c;但是都没有成功。通过这篇文章&#xff1a;虚拟机安装VMware Tools的两种方法_vmware tools有3种安装方式-CSDN博客 安装了vmware_too…

PCIE收发时序了解

文章目录 一、Pcie的发送时序1.1 不带数据的TLP包1.2 带数据的TLP包1.3 连续发送数据的TLP包 二、Pcie的接收时序2.1 不带数据的TLP包2.2 带数据的TLP包2.3 连续接收数据的TLP包 三、riffa框架和用户channel的接口3.1 RX接口波形&#xff1a;3.2 TX接口波形&#xff1a; 一、Pc…

用python写网络爬虫:3.urllib库进一步的使用方法

文章目录 异常处理URLErrorHTTPError设置超时时间 链接的解析、构造、合并urlparse方法urlsplit方法urljoin方法urlencode方法parse_qs方法quote方法 Robots 协议Robots 协议的结构解析协议 参考书籍 在上一篇文章&#xff1a;用python写网络爬虫&#xff1a;2.urllib库的基本用…

SpringBoot3整合Knife4j4.x版本(Swagger3、OpenApi3)

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot3整合Knife4j4.x版本(Swagger3、OpenApi3) ⏱️ 创作时间&a…

【每日力扣】131.分割回文串与450.删除二叉搜索树中的节点

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害。 131.分割回文串 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的…

C#使用MiniExcel读取excel表格文件

使用MiniExcel读取excel表格文件 MiniExecl提供了几种读取方法。 准备测试数据 测试类&#xff1a; public class Person{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }public double Value { get; set; }}测试数据…

伦敦数据科学与Scikit-learn:一次探索与实践的旅程

1.题目 Data Science London正在举办一场关于Scikit-learn的聚会。 这个比赛是尝试、分享和创建 sklearn 分类能力示例的练习场&#xff08;如果这变成了有用的东西&#xff0c;我们可以跟进回归或更复杂的分类问题&#xff09;。Scikit-learn&#xff08;sklearn&#xff09;…

Django项目不显示图片,路径找不到

1.问题 创建Django项目简单写一个网页&#xff0c;文字能显示&#xff0c;图片却无法加载&#xff0c;路径错误&#xff0c;找不到图片。 2.背景 我的项目结构 C:. ├─.idea │ └─inspectionProfiles ├─app01 │ ├─migrations │ ├─templates │ │ ├─app0…

postgres让别人连接自己本地的库

本地安装了postgres&#xff0c;一般只能自己连接&#xff0c;如果别人想要连接我们自己的库&#xff0c;需要修改postgres的配置。 找到pg.gba.conf&#xff0c;路径是&#xff1a;postgres安装路径/PostgreSQL/data 使用记事本打开这个文件&#xff0c;将别人的ip填入其中即…

Python数学建模-2.5Pandas库介绍

2.5.1Pandas基本操作 Pandas是一个强大的Python数据分析库&#xff0c;它提供了快速、灵活且富有表现力的数据结构&#xff0c;设计初衷是为了处理关系型或标记型数据。Pandas的基本操作涵盖了数据的读取、处理、筛选、排序、分组、合并以及可视化等多个方面。 以下是一些Pan…

CentOS7环境——yum安装nginx

目录 1.修改yum源为阿里云 2.下载wget 3.下载阿里云的 CentOS-Base.repo 到/etc/yum.repos.d/ 4.清空原本yum缓存 5.生成新的阿里云的yum缓存&#xff0c;加速下载预热数据 6.下载epel-release 7.下载nginx 8.启动并检查nginx状态 1.修改yum源为阿里云 cp /etc/yum.re…

QQ 截图工具独立版安装使用

前言 之前截图一直使用的QQ截图&#xff0c;相比于微信截图&#xff0c;QQ截图还支持长截图&#xff0c;总体来说&#xff0c;QQ截图是我使用过的最好的截图工具 。但是现在公司不让用微信、QQ、钉钉等通讯软件&#xff0c;要求使用公司自研的通讯软件&#xff0c;这样就不能使…

EMQX 实践

MQTT 核心概念 发布订阅 MQTT 基于发布订阅模式&#xff0c;它解耦了消息的发送方&#xff08;发布者&#xff09;和接收方&#xff08;订阅者&#xff09;&#xff0c;引入了一个中间代理的角色来完成消息的路由和分发。发布者和订阅者不需要知道彼此的存在&#xff0c;他们…

IIS上部署.netcore WebApi项目及swagger

.netcore项目一般是直接双击exe文件&#xff0c;运行服务&#xff0c;今天有个需求&#xff0c;需要把.netcore项目运行在IIS上&#xff0c;遇到了一个小坑&#xff0c;在这里记录一下。 安装IIS&#xff0c;怎么部署站点&#xff0c;这些过于简单就不细说了&#xff0c;不知道…

java学习之路-方法讲解

目录 1.方法概念及使用 1.1什么是方法 1.2方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系(重要) 1.5 没有返回值的方法 2.方法重载 3.方法递归 3.1递归概念 3.2递归执行过程分析 3.3递归练习 代码示例1 代码示例2 1.方法概念及使用 1.1什么是方法 方法就是…

ipad电容笔有必要买吗?怎么选?四大缺陷弊端要严防!

电容笔有没有必要买还是得看我们个人的使用需求&#xff0c;如果平时做笔记、画画比较多的话&#xff0c;还是值得入手的&#xff0c;原装笔是好&#xff0c;但对于一些预算不多的朋友来说&#xff0c;价格还是过于高了&#xff0c;不是很划算。而且我们国内市场的平替电容笔也…