牛客网编程初学者入门训练4

BC29 2的n次方计算

描述

不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。

输入描述:

一行输入整数n,数据范围: 0 < = n < = 31 0 <= n <= 31 0<=n<=31

输出描述:

输出对应的2的n次方的结果。

示例1:

输入:

2

输出:

4

示例2:

输入:

10

输出:

1024

内心想法:

没用过移位运算,学!发现这篇博客说的比较清楚:

C/C++的移位运算

本题代码实现如下:

#include<iostream>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        cout<<(1 << n)<<endl;
    }
}

其中,(1 << n)输出的就是2的n次方。

BC34 进制A+B

描述

输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围 -2 31 ~ 2 31 -1)。

输入描述:

一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。

输出描述:

一行,a+b的十进制结果。

示例1

输入:

0x12 05

输出:

23

备注:

十六进制Hexadecimal一般以0x开头,例如0xFF。八进制Octal,一般以0开头,例如07。

内心想法:

要注意在C++中cout或cin默认输出输入的都是十进制数字,只有加上hex(十六进制)、oct(八进制)后才能输入或输出要求的进制。

代码实现如下:

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>hex>>a>>oct>>b;
    cout<<dec<<a + b<<endl;
}

BC35 判断字母

描述

从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。

输入描述:

输入包括一个字符。

输出描述:

输出该字符是字母(YES)或不是(NO)。

示例1:

输入:

H

输出:

YES

示例2:

输入:

9

输出:

NO

内心想法:

这本来应该是可以用ASCII码来做的,但是显得比较low,想装一下,就用个函数吧。

判断字母的函数可以用 isalpha() ,这个函数包含在这个头文件中:

#include<ctype.h>

这篇博客列了一些该头文件中包含的函数,很有意思:

C++判断输入是否为字符,数字,空格等

此题代码实现如下:

#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
    char a;
    cin>>a;
    if(isalpha(a))
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout<<"NO"<<endl;
    }
}

就eng装······

BC46 判断是元音还是辅音

描述

KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。

输入描述:

多组输入,每行输入一个字母。

输出描述:

针对每组输入,输出为一行,如果输入字母是元音(包括大小写),输出“Vowel”,如果输入字母是非元音,输出“Consonant”。

示例1

输入:

A
b

输出:

Vowel
Consonant

内心想法:

第一想法当然是在 if 判断条件那里暴力把十个字母都列上,但是好不甘心,又想装了······

这里用一下string中自带的 find() 函数查找字符,真的很爽。

具体可以看看这篇博客:

find()函数及其他常用函数总结

代码实现如下:

#include<iostream>
using namespace std;
int main()
{
    char ch;
    string s = "AEIOUaeiou";
    while(cin>>ch)
    {
        if(s.find(ch) != -1)
        {
            cout<<"Vowel"<<endl;
        }
        else
        {
            cout<<"Consonant"<<endl;
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lum0s!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值