首页 > 其他分享 >pat甲级刷题第一天

pat甲级刷题第一天

时间:2023-01-13 22:56:48浏览次数:30  
标签:pat cur int double cin -- 甲级 include 刷题

1001 A+B Format 

(解题思路):利用数组存取每一位,当数组的下标是3的倍数的时候额外输出一个','

#include<iostream>
#include<vector>
using namespace std;

int main(){
    int a,b;
    cin>>a>>b;
    int sum=a+b;
    if(sum==0){
        cout<<0;
        return 0;  
    }
    if(sum<0){
        cout<<'-';
        sum*=-1;
    }
    vector<int>v;
    while(sum!=0){
        v.emplace_back(sum%10);
        sum/=10;
    }
    for(int i=v.size()-1;i>=0;i--){
        cout<<v[i];
        if(i&&i%3==0)cout<<','; //注意当i为零的时候不需要输出','
    }
    return 0;
}

  

1002 A+B for Polynomials

 (解题思路):利用数组存储幂不相同的x的系数,最后进行输出(注意事项):数组初始为0;由于精度原因,最好利用printf函数进行输出
#include<iostream>
#include<cstdio>
using namespace std;

int main(){
    double cur[1001]={0};
    int k;
    cin>>k;
    while(k--){
        int n;
        double d;
        cin>>n>>d;
        cur[n]+=d;
    }
    cin>>k;
    while(k--){
        int n;
        double d;
        cin>>n>>d;
        cur[n]+=d;
    }
    int Sum=0;
    for(int i=0;i<=1000;i++){
        if(cur[i]!=0)Sum++;
    }
    cout<<Sum;
    for(int i=1000;i>=0;i--){
        if(cur[i]!=0){
            printf(" %d %.1f",i,cur[i]);
        }
               
    }
    
    return 0;
}

1002 A+B for Polynomials

 (解题思路2):目的:减少数组的空间消耗  优化:利用map存储幂不相同的x的系数,最后进行输出 
#include<iostream>
#include<map>
#include<cstdio>
using namespace std;

int main(){
    map<int,double>cur;
    int k;
    cin>>k;
    while(k--){
        int n;
        double d;
        cin>>n>>d;
        cur[n]+=d;
    }
    cin>>k;
    while(k--){
        int n;
        double d;
        cin>>n>>d;
        cur[n]+=d;
        if(cur[n]==0)cur.erase(n); //为了方便计算多项式的式子的数量
    }
    cout<<cur.size();
    for(auto it=cur.end();it!=cur.begin();){
            --it;
            printf(" %d %.1f",it->first,it->second);         
    }
    
    return 0;
}

标签:pat,cur,int,double,cin,--,甲级,include,刷题
From: https://www.cnblogs.com/jerry-autumn/p/17050876.html

相关文章

  • 1.12刷题记录
    1.[XMAN2018排位赛]通行证打开附件看出里面这是base64加密于是去解密然后又得到了新的密码--kanbbrgghjl{zb____}vtlaln这是栅栏密码然后一系列操作kzna{blnl_ab......
  • 微信小程序转发onShareAppMessage设置path参数后在onload获取不到值的原因和解决方法
    官方实例:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareAppMessage-Object-object官方实例代码如下:Page({onShareAppMessage()......
  • LeetCode刷题(13)~移动零
    题目描述给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷......
  • LeetCode刷题(12)~加一
    题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整......
  • LeetCode刷题(10)~只出现一次的数字
    题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外......
  • LeetCode刷题(11)~ 两个数组的交集 II
    题目描述给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2,2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[4,9]......
  • LeetCode刷题(9)~存在重复元素
    题目描述给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。示例1:输入:[1,2,3,1]输......
  • LeetCode刷题(8)~旋转数组
    题目描述给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例1:输入:[1,2,3,4,5,6,7]和k=3输出:[5,6,7,1,2,3,4]解释:向右旋转1步:[7,1,2,3,4,5,6......
  • LeetCode刷题(7)~删除排序数组中的重复项
    题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用......
  • LeetCode刷题(4)~ 最长公共前缀
    题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串“”。示例1:输入:[“flower”,“flow”,“flight”]输出:“fl”示例2:输......