假期刷题打卡--Day12

发布时间:2024年01月23日

1、MT1128骰子的反面

小码哥抛出一个六面骰子。每个面上都印有一个数字,数字在1到6之间。输入正面的数字,输出对面的数字。 其他情况输出-1。

格式

输入格式:

输入为整型

输出格式:

输出为整型

样例 1

输入:

6

输出:

1
相关知识点

6点的对面是1点,2点的对面是5点,3点的对面是4点。

骰子的展开图如下:

?已知了关于骰子对立面的对应的点数之后,这个题目就没什么难度了

实现代码
#include<bits/stdc++.h> 

using namespace std;
//6点的对面是1点,2点的对面是5点,3点的对面是4点。
void OP(int a){
    switch(a){
        case 1:cout << 6;break;
        case 2:cout << 5;break;
        case 3:cout << 4;break;
        case 4:cout << 3;break;
        case 5:cout << 2;break;
        case 6:cout << 1;break;
    }
}
int main( )
{
    int a;
    cin >> a;
    if(a >= 1 && a <= 6){
        OP(a);
    }else{
        int b = -1;
        cout << b;
    }
    return 0;
}

2、MT1131字符判断

输入一个字符,判断是数字字符、大写字母、小写字母、算术运算符、关系运算符、逻辑运算符,还是其他字符,分别输出“Number”,“Capital letter”,“Lowercase letter”,“Arithmetic operators”, “Relational operators”, “Logical operators”, “Other character”。

格式

输入格式:

输入一个字符

输出格式:

输出字符

样例 1

输入:

A

输出:

Capital letter
备注

算术运算符: + - * /
关系运算符: = > <
逻辑运算符: ! & | ^

主要记住备注的这三个,其他都是常见的,大概率没什么问题。

实现代码
#include<bits/stdc++.h> 

using namespace std;

void judge(char a){
    if(a>='1'&&a<='9'){
        cout << "Number";
    }else
    if(a>='A'&&a<='Z'){
        cout << "Capital letter";
    }else
    if(a>='a'&&a<='z'){
        cout << "Lowercase letter";
    }else 
    if(a=='+'||a=='-'||a=='*'||a=='/'){
        cout << "Arithmetic operators";
    }else
    if(a=='='||a=='>'||a=='<'){
        cout << "Relational operators";
    }else
    if(a=='!'||a=='&'||a=='|'||a=='^'){
        cout << "Logical operators";
    }else{
        cout << "Other character";
    }
}
int main( )
{
    char a;
    cin >> a;
    judge(a);
    return 0;
}

3、MT1132人民币大写数字

输入一个金额,输出对应的人民币大写数字(零壹贰叁肆伍陆柒捌玖拾)。不考虑负数等不合理的输入。

格式

输入格式:

输入为整型(<100)

输出格式:

输出字符

样例 1

输入:

35

输出:

叁拾伍元整
解决思路

首先写一个函数,将数字转换成大写的数字,然后在主函数中分情况进行讨论,分为三种情况,输入的整数为0;输入的整数大于等于1且小于等于10;输入的数大于十。对于前两种直接输出大写数字,然后在后面加上“元整”;而大于10小于100的数字就需要考虑个位和十位的数据,个位的数是通过输入数与10求余得到的,十位的数字是通过除以10得到的。然后注意在十位数后加上“拾”,在个位数后面加上“元整”就行了。

按照这个思路,刚开始写的代码如下:

#include<bits/stdc++.h> 

using namespace std;

void judge(int a){
    switch(a){
        case 1:cout << "壹";break;
        case 2:cout<<"贰";break;
        case 3:cout<<"叁";break;
        case 4:cout<<"肆";break;
        case 5:cout<<"伍";break;
        case 6:cout<<"陆";break;
        case 7:cout<<"柒";break;
        case 8:cout<<"捌";break;
        case 9:cout<<"玖";break;
        case 10:cout<<"拾";break;
    }
}
int main( )
{
    int a;
    cin >> a;
    if(a == 0){
        cout << "零元整";
    }else
    if(a>=1 && a<=10){
        judge(a);
        cout << "元整";
    }
    else{
        int b = a/10,c = a%10;
        if(c==0) {
            judge(b);
            cout << "拾元整";
        }
        else {
            judge(b);        
            cout << "拾" ;
            judge(c);
            cout << "元整";
        }
           
    }
    return 0;
}

?但是写完之后,发现并没有必要把0分出来,可以直接在函数中写上去,于是,得到了下面的代码.。

实现代码
#include<bits/stdc++.h> 

using namespace std;

void judge(int a){
    switch(a){
        case 0:cout << "零";break;
        case 1:cout << "壹";break;
        case 2:cout<<"贰";break;
        case 3:cout<<"叁";break;
        case 4:cout<<"肆";break;
        case 5:cout<<"伍";break;
        case 6:cout<<"陆";break;
        case 7:cout<<"柒";break;
        case 8:cout<<"捌";break;
        case 9:cout<<"玖";break;
        case 10:cout<<"拾";break;
    }
}
int main( )
{
    int a;
    cin >> a;
    if(a>=0 && a<=10){
        judge(a);
        cout << "元整";
    }
    else{
        int b = a/10,c = a%10;
        if(c==0) {
            judge(b);
            cout << "拾元整";
        }
        else {
            judge(b);        
            cout << "拾" ;
            judge(c);
            cout << "元整";
        }
           
    }
    return 0;
}

明天继续吧。

文章来源:https://blog.csdn.net/m0_62263513/article/details/135784146
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。