2020年2月11日 PAT

B1036 15’ 20mins 图形输出 easy

#include <iostream>

using namespace std;

void test()
{
    int n;
    char x;
    cin >> n >> x;
    //第一行
    for(int i = 0;i<n;++i)
    {
        cout << x;
    }
    cout << endl;
    //中间行
    int h;
    if(n%2==0)
        h = n/2;
    else
        h = (n+1)/2;
    for(int i = 2; i< h ; ++i)
    {
        cout << x;
        for(int j = 2; j<n ; ++j)
            cout << " ";
        cout << x << endl;
    }
    //最后一行
    for(int i = 0;i<n;++i)
    {
        cout << x;
    }

}
int main ()
{
    test();
    return 0;
}

B1022 20’ 21min 进制转换 esay

掌握A进制转换为B进制

  • 首先:A进制转为10进制
    ![image_1e0pooduh1nfuoe01016aj15649.png-456.8kB][3]
int y = 0, produce = 1;
while(x != 0)
{
    y = y + (x % 10) * product;
    x = x / 10;
    product = product *A;
}
  • 其次:10进制转为B进制 除基取余法
    int num = 0;
    do{
        ans[num++] = a % B;
        a = a / B;
    }while(y != 0);     //得用do while 防止这个十进制a本身就是0,而产生的bug
    for(int i = num-1;i>=0;--i)     //倒序输出
    {
        cout << ans[i];
    }

![image_1e0pp38il63t1v3i1sh51de61i0vm.png-408.5kB][4]

/* B1022 */
#include <iostream>

using namespace std;
void test()
{
    int a,b,d;
    cin >> a >> b >> d;
    int sum = a+b;
    int c[100];
    int num = 0;
    do{
        c[num++] = sum % d;
        sum = sum/d;
    }while(sum!=0);
    for(int i = num-1; i>=0; --i)
    {
        cout << c[i];
    }
}
int main ()
{
    test();
    return 0;
}

B1037 20’ 24min 进制转换 easy

#include <iostream>
#include <stdio.h>
using namespace std;
void test()
{
    int a,b,c;
    int d,e,f;
    scanf("%d.%d.%d %d.%d.%d",&a,&b,&c,&d,&e,&f);
    int need = a*17*29+b*29+c;
    int have = d*17*29+e*29+f;
    int give = have - need;
    if(give < 0)
    {
        cout << "-";
        give = -give;
        printf("%d.%d.%d",give/(17*29),give%(29*17)/29,give%29);
    }
    else
        printf("%d.%d.%d",give/(17*29),give%(29*17)/29,give%29);
}
int main (void)
{
    test();
    return 0;
}

A1019 20’ 19min 进制转换 easy

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//检查是不是回文数
bool sss(vector<int> a)
{
    for(int i = 0; i<a.size()/2 ; ++i)
    {
        if(a[i] != a[a.size()-1-i])
            return false;
    }
    return true;
}

void test()
{
    int n,d;
    cin >> n >> d;
    vector<int> s;
    do{
        s.push_back(n%d);
        n /= d;
    }while(n!=0);
    if(sss(s))
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
    for(int i = s.size()-1; i>= 0 ; --i)
    {
        cout << s[i];
        if(i!=0)
            cout << " ";
    }
}
int main()
{
    test();
    return 0;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值