「PAT乙级真题解析」Basic Level 1101 B是A的多少倍 (问题分析+完整步骤+伪代码描述+提交通过代码)

news/2024/11/20 13:32:55/

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。

PAT (Basic Level) Practice 1101 B是A的多少倍

问题分析

题设明确要求按照其给定的步骤变换给定的正整数, 然后输出变换后的正整数是输入正整数的多少倍。
所以重点在于转换逻辑的编写。由于给定的正整数不大于10的9次方, 所以可以用整型存储。
但是涉及到部分数位的移动, 使用整型时获取各个数位的数字时需要从后往前, 这里不太适合,
所以最佳方式时使用字符串存储正整数, 变换之后得到新的字符串, 然后将两个字符串转换为整型后相除。

完整描述步骤

  1. 获取输入: 正整数A, 需要截取的位数D
  2. 初始化正整数B(字符串形式)
  3. 从A的倒数第D位开始到最后一位:
    • 将当前数字字符加到字符串B的末尾
  4. 从A的第一位开始到倒数第D位:
    • 将当前数字字符加到字符串B的末尾
  5. 转换A和B为数值类型
  6. 输出B除以A的结果(保留2位小数)

伪代码描述

  1. get input: origin_number, cut_width
  2. init new_number;
  3. for i in range(length(origin_number) - cut_width, length(origin_number)):
    • new_number += origin_number[i]
  4. for i in range(0, length(origin_number) - cut_width):
    • new_number += origin_number[i]
  5. print(int(new_number) / int(origin_number))

完整提交代码

/*
# 问题分析
题设明确要求按照其给定的步骤变换给定的正整数, 然后输出变换后的正整数是输入正整数的多少倍。
所以重点在于转换逻辑的编写。由于给定的正整数不大于10的9次方, 所以可以用整型存储。
但是涉及到部分数位的移动, 使用整型时获取各个数位的数字时需要从后往前, 这里不太适合,
所以最佳方式时使用字符串存储正整数, 变换之后得到新的字符串, 然后将两个字符串转换为整型后相除。# 完整描述步骤
1. 获取输入: 正整数A, 需要截取的位数D
2. 初始化正整数B(字符串形式)
3. 从A的倒数第D位开始到最后一位:- 将当前数字字符加到字符串B的末尾
4. 从A的第一位开始到倒数第D位:- 将当前数字字符加到字符串B的末尾
5. 转换A和B为数值类型
6. 输出B除以A的结果(保留2位小数)# 伪代码描述
1. get input: origin_number, cut_width
2. init new_number;
3. for i in range(length(origin_number) - cut_width, length(origin_number)):- new_number += origin_number[i]
4. for i in range(0, length(origin_number) - cut_width):- new_number += origin_number[i]
5. print(int(new_number) / int(origin_number))
*/# include<stdio.h>int calculate_number_length(char* number){int length = 0;for (int i = 0; number[i]; i++){length++;}return length;
}int transform_number(char* origin_number, int cut_width, char *new_number){int length = calculate_number_length(origin_number);new_number[length] = 0;for (int i = length - cut_width; i < length; i++){new_number[i+cut_width-length] = origin_number[i];}for (int i = 0; i < length - cut_width; i++){new_number[i+cut_width] = origin_number[i];}
}double calculate_multiple(char* origin_number, char* new_number){int length = calculate_number_length(origin_number);int divisor = 0, dividend = 0;for (int i = 0; i < length; i++){divisor = divisor * 10 + (origin_number[i] - '0');dividend = dividend * 10 + (new_number[i] - '0');}return (double)dividend / divisor;
}int main(){char origin_number[11];int cut_width;scanf("%s %d", origin_number, &cut_width);char new_number[11];transform_number(origin_number, cut_width, new_number);printf("%.2f", calculate_multiple(origin_number, new_number));return 0;
}

http://www.ppmy.cn/news/764.html

相关文章

LeetCode 刷题系列 -- 1425. 带限制的子序列和

给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回 非空 子序列元素和的最大值&#xff0c;子序列需要满足&#xff1a;子序列中每两个 相邻 的整数 nums[i] 和 nums[j] &#xff0c;它们在原数组中的下标 i 和 j 满足 i < j 且 j - i < k 。 数组的子序列定义为…

crm客户管理系统为企业带来的价值

简道云CRM场景套件对中小企业来说&#xff0c;crm客户管理系统最核心的作用&#xff0c;一是客户信息(联系信息和洽谈过程&#xff09;的存留&#xff0c;不会因为业务人员的离职造成流失&#xff0c;这点对老板很重要。二是可帮助业务人员&#xff08;客户获取、主管指导等&am…

HTML+CSS+JavaScript仿京东购物网站制作 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

Spring Cloud教程 第十二弹 Spring Cloud Config整合Spring Cloud Bus实现配置动态刷新

Spring Cloud Config整合Spring Cloud Bus1、回顾2、手动刷新3、Spring Cloud Bus动态刷新配置1、回顾 在上一弹&#xff1a;Spring Cloud教程 第十一弹 Spring Cloud Config连接git和数据库 中介绍了spring cloud config的基本使用&#xff0c;但是配置无法动态刷新&#xff…

计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码+系统+程序+lw文档+部署

计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码系统程序lw文档部署 [赠送源码]Springboot校园疫情防控系统h5pmv计算机毕业设计-课程设计-期末作业-毕设程序代做本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&am…

PHP基于thinkphp的在线教学网站#毕业设计

在线教学系统采用B/S模式&#xff0c;促进了在线教学系统的安全、快捷、高效的发展。传统的管理模式还处于手工处理阶段&#xff0c;管理效率极低&#xff0c;随着用户的不断增多&#xff0c;传统基于手工管理模式已经无法满足当前用户需求&#xff0c;随着信息化时代的到来&am…

低代码开发平台助力生产管理:采购成本管理的优化

采购是企业经营活动中的重要环节&#xff0c;它处于企业生产经营活动的最前端&#xff0c;同时也是成本费用中占较大比重的环节。采购成本主要是指企业在生产过程中用于采购产品及服务等交易活动所产生的一系列支出&#xff0c;包括物资的购买价格、税费、运输费等&#xff0c;…

SpringBoot+Vue实现前后端分离的员工日志管理信息系统

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue.js 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JD…