pat乙级 1002写出这个数

2024-03-30 05:18
文章标签 1002 pat 写出 乙级

本文主要是介绍pat乙级 1002写出这个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天是做题的第一天,写个博客记录自己的做题历程(小白做题,勿喷)

思路很简单,就是算出sum后,通过pow算出最大位数,然后倒过来依次递减通过取余作除,将sum各个位上的数存进数组,最后输出

#include<iostream>
#include<cmath>
using namespace std;
int main(){string arr[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};//simplify codechar ch;int sum=0,i=0,num=0,s[4];while((ch=getchar())!='\n'){// Note the difference between \ 0 and \ nsum+=(ch-'0');//find the sum;}while(sum>=pow(10,i)){//though the power function to find the maximun number of digitsi++;}int count=i-1;//count represents the lagrest multiple of ten. i represents the maxinum number of digits.for(;count>=0;count--){num=pow(10,count);s[count]=sum/num;sum=sum%num;}for(count=i-1;count>=0;count--){if(count<i-1)//this is a very clever waycout<<" ";cout<<arr[s[count]];}return 0;
}

从大佬那学来很多简化的代码

1.string arr[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};//省去了用switch的情况

2.    while((ch=getchar())!='\n'){
        sum+=(ch-'0');//将巨大的整数化为字符简单计算
    }

3.if(count<i-1)
            cout<<" ";
        cout<<arr[s[count]];//将空格在数字前输入,只要第一个不输入空格,就可以完美满足题目要求

这篇关于pat乙级 1002写出这个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860570

相关文章

nyoj 1002 Trucking

同样一道改编题。 只要把题意理解了好。 简单的二分加最短路。 只要二分高度, 然后求最短路,输出满足题意的即可。 代码如下: (最短路用spfa 时间效率高) #include <iostream>#include <cstdio>#include <cstring>#include <ctime>#include <queue>using namespace st

百度之星 2015 初赛(1) 1002 找连续数

找连续数      Accepts: 401      Submissions: 1911  Time Limit: 2000/1000 MS (Java/Others)      Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是

百度之星初赛1002(二分搜索)

序列变换    Accepts: 816    Submissions: 3578  Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 给定序列 A={A1,A2,...,An} , 要求改变序列A中

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis (已更完)Kafka(已更完)Spark(已更完)Flink(正在更新!) 章节内容 上节我们完成了如下的内容: Sink 的基本概念等内

58、Python之函数高级:不定参数的函数,写出更加通用的装饰器

引言 上一篇文章中,我们见到引入了Python中的装饰器,通过一个简单的案例实现了一个初步的装饰器,但是,这个装饰器其实是有些缺陷。这一篇文章中,我们对上一篇文章中的装饰器进行一个优化升级,从而写出更加通用的装饰器。 本文的主要内容有: 1、简陋装饰器的缺陷 2、关于函数参数的更加通用的写法 3、更加规范通用的装饰器实现方式 简陋装饰器的缺陷 我们之所以需要使用装饰器,很多时候就

九度考研真题 浙大 2011-2浙大1002:Grading

题目1002:Grading #include<iostream> #include<stdio.h> #include<math.h>  using namespace std; int main() { double P,T,G1,G2,G3,Gj; double num; while(cin>>P) { cin>>T>>G1>>G2>>G

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

写出简洁高效的 CSS:我的实战经验和心得分享

作为一名资深前端开发人员,我深知 CSS 的重要性和复杂性。它赋予了我们创造精美界面的能力,但也对我们的编码技巧提出了更高的要求。本文将分享我多年积累的 CSS 编写经验和心得,帮助你写出更简洁、更高效、更易维护的代码。 初学者眼中的 CSS:一座难以逾越的巅峰 对于许多初学者来说,CSS 就像一座难以逾越的巅峰,充满了未知和挑战。与传统的编程语言不同,CSS 拥有独特的语法和规则,需要我们花