C++--简单算法题(2)

本文为学习记录,若有错误,请联系作者,谦虚受教。


前言

努力,并不是满足任何人的期待
而是想要活出自己。


以下是本篇文章正文内容

一、定义变量

描述
按顺序分别定义char、int、long、double类型的变量,并用sizeof()依次输出这几个变量在内存中所占用的字节数。
输入描述:
用户按顺序分别定义char、int、long、double类型的变量。

#include <iostream>
using namespace std;
int main() {
    char a;
    int b;
    long c;
    double d;
    cout<<sizeof(a)<<endl;
    cout<<sizeof(b)<<endl;
    cout<<sizeof(c)<<endl;
    cout<<sizeof(d)<<endl;
    return 0;
}

二、实现四舍五入

描述
将浮点数转换为整数类型,要求四舍五入。
输入描述:
随机输入的浮点数
输出描述:
四舍五入之后的整数

#include <iostream>
using namespace std;
int main() {
    double d;
    cin >> d;
    int b=(int)d;
    double c=d-b;
    if(c>=0.5)
    {   
        cout<<int(d+1)<<endl;
    }
    else{
        if(c<-0.5)
        {
        cout<<int(d-1)<<endl;
        }
        else
            cout<<(int)d <<endl;
    }
    return 0;
}

三、实现两数求和

描述
键盘录入两个整数 a 和 b,并对 a 和 b 求和,输出结果。
输入描述:
输入任意两个 int 类型的整数,范围[-1000, 1000]
输出描述:
输出两个整数的和

#include <iostream>
using namespace std;
int main() {
    int a;
    int b;
    cin>>a;
    cin>>b;
    cout<<a+b<<endl;
    return 0;
}

四、获取两数中最大值

描述
键盘录入两个整数 a 和 b,获取这两个整数中的较大值,并输出。
输入描述:
输入任意两个整数
输出描述:
输出两个整数中的较大值

#include <iostream>
using namespace std;
int main() {
    int a ;
    int b;
    cin>>a;
    cin>>b;
    cout<<max(a,b)<<endl;
    return 0;
}

五、简单运算

描述
键盘输入两个 int 范围的正整数 a 和 b,范围为[1, 9999],输出这两个 int 范围的正整数的和,差,积,商,模(若 a > b 则输出 a - b,a / b,a % b 的值反之输出 b - a,b / a,b % a 的值,不考虑小数)
输入描述:
两个 int 范围的正整数,范围为[1, 9999]
输出描述:
输出这两个 int 范围的正整数的和,差,积,商,模(若 a > b 则输出 a - b,a / b,a % b 的值反之输出 b - a,b / a,b % a 的值,不考虑小数和数据越界情况)

#include <iostream>
using namespace std;
int main() {
    int a;
    int b;
    cin>>a;
    cin>>b;
    if(a>b)
    {
        cout<<a+b<<" "<<a-b<<" "<<a*b<<" "<<a/b<<" "<<a%b<<" "<<endl;
    }
    else{
        cout<<a+b<<" "<<b-a<<" "<<a*b<<" "<<b/a<<" "<<b%a<<" "<<endl;
    }
    return 0;
}

六、交换两个变量的值

描述
实现交换两个int类型变量的值
输入描述:
a变量和b变量的值,要求都是int类型的值
输出描述:
交换后a变量和b变量的值

#include <iostream>
using namespace std;
int main() {
    int a = 0;
    int b = 0;
    cin >> a;
    cin >> b;
    int c1=b;
    int c2=a;
    a=c1;
    b=c2;
    cout << a << " " << b << endl;   
    return 0;
}

七、三个数的最大值

描述
键盘录入三个整数 a、b、c,获取这三个整数中的最大值,并输出。(要求使用三元表达式实现)
输入描述:
输入任意三个整数
输出描述:
输出三个整数中的最大值

#include <iostream>
using namespace std;
int main() {   
    int a, b, c;
    cin >> a;
    cin >> b;
    cin >> c;
    if(a>b)
    {
        if(a>c)
        {
            cout<<a<<endl;
        }
        else{
            cout<<c<<endl;
        }
    }
    else{
        if(c>b)
        {
            cout<<c<<endl;
        }
        else{
            cout<<b<<endl;
        }
    }
    return 0;
}

八、计算商品打折金额

描述
商场促销活动:
满100打9折;
满500打8折;
满2000打7折;
满5000打6折
阿姨算不清楚自己应该付多少钱,请你帮忙算一下
输入描述:
阿姨购买商品打折前的总金额
输出描述:
参加活动后,阿姨购买商品应付金额。(保留小数点后1位)

#include <iostream>
#include <iomanip>
using namespace std;
int main() {   
    double price;
    cin >> price;
    double cost = 0.0;
    if(price>=100)
    {
        cost=price*0.9;
    }
     if(price>=500)
    {
        cost=price*0.8;
    }
     if(price>=2000)
    {
        cost=price*0.7;
    }
    else if(price>=5000)
    {
        cost=price*0.6;
    }      
    cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;
    return 0;
}

九、判断身材状态

体重指数(BMI)是世界卫生组织(WHO)推荐的国际统一使用的肥胖分型标准,即BMI=体重/身高2(kg/m2)。小于 18.5 属于"偏瘦",大于等于 18.5 小于 20.9 属于"苗条",大于等于 20.9 小于等于 24.9 属于"适中",超过 24.9 属于"偏胖"。下面由你来编写一段逻辑,输入用户的身高和体重,计算出对应的体重指数,并返回他们的身材状态。
输入描述:
用户的身高(m)和用户的体重(kg)
输出描述:
体重指数对应的身材状态:偏瘦,苗条,适中,偏胖。

#include <iostream>
using namespace std;
int main() {   
    double weight;
    double height;
    cin >> weight;
    cin >> height;
    double BMI;
    BMI=weight/(height*height);
    if(BMI<18.5)
    {
        cout<<"偏瘦"<<endl;
    }
    if(BMI>=18.5&&BMI<20.9)
    {
        cout<<"苗条"<<endl;
    }
    if(BMI>=20.9&&BMI<=24.9)
    {
        cout<<"适中"<<endl;
    }
    else if(BMI>24.9)
    {
        cout<<"偏胖"<<endl;
    }
    return 0;
}

十、判断成绩等级

描述
键盘录入一个成绩(整数),判断并输出成绩的等级,如果用户输入成绩不合法(小于0或者大于100)则输出成绩不合法。
90-100 优秀
80-89 良
70-79 中
60-69 及格
0-59 差
输入描述:
输入学生的成绩(整数)
输出描述:
输出成绩对应的等级
90-100 优秀
80-89 良
70-79 中
60-69 及格
0-59 差
如果用户输入成绩不合法(小于0或者大于100)则输出成绩不合法。

#include <iostream>
using namespace std;
int main() { 
    int score;
    cin >> score;
    if(score<0||score>100)
    {
        cout<<"成绩不合法";
    }
    else
    {
        if(score>=90&&score<=100){
            cout<<"优秀"<<endl;
        }
        if(score>=80&&score<=89)
        {
            cout<<"良"<<endl;
        }
        if(score>=70&&score<=79)
        {
            cout<<"中"<<endl;
        }
        if(score>=60&&score<=69)
        {
            cout<<"及格"<<endl;
        }
        else if(score>=0&&score<=59){
            cout<<"差"<<endl;
        }
    }
    return 0;
}

十一、判断季节

描述
键盘录入一个月份 month,判断属于哪个季节。(3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季)
输入描述:
输入任意一个月份整数,范围在 1 - 12
输出描述:
输出对应月份的季节,3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季。如果输入的月份不是 1 - 12,则输出“不合法”。

#include <iostream>
using namespace std;
int main() {    
    int month;
    cin >> month;
    if(month<1||month>12){
        cout<<"不合法"<<endl;
    }
    else{
        if(month>=3&&month<=5)
        {
            cout<<"春季"<<endl;
        }
        if(month>=6&&month<=8)
        {
            cout<<"夏季"<<endl;
        }
        if(month>=9&&month<=11)
        {
            cout<<"秋季"<<endl;
        }
        else if(month==12||month==1||month==2)
        {
            cout<<"冬季"<<endl;
        }
    }
    return 0;
}

十二、1-n间的偶数和

描述
键盘输入一个 int 类型的正整数 n,n 的范围为[1, 1000],求 1 - n 之间偶数的和,并输出。
输入描述:
输入任意一个 int 类型的正整数,n 的范围为[1, 1000]
输出描述:
输出 1 - n 之间偶数的和

#include <iostream>
using namespace std;
int main() {    
    int n;
    cin >> n;
    int sum = 0;
    for(int i=1;i<=n;i++)
    {
        if(i%2==0)
        {
            sum=sum+i;
        }
    }
    cout << sum << endl;   
    return 0;
}

十三、求一个数的阶乘

描述
键盘录入一个整数 n,求 n 的阶乘。
n 的阶乘为 n * (n - 1) * (n - 2) * … * 1
例:5 的阶乘为 5 * 4 * 3 * 2 * 1
输入描述:
键盘录入任意一个整数 n ,范围为 1 - 20
输出描述:
输出该数的阶乘

#include <iostream>
using namespace std;
int main() { 
    int n;
    cin >> n;
    long long factorial = 1;
    for(int i=2;i<=n;i++)
    {
        factorial *=i;
    }
    cout << factorial << endl;   
    return 0;
}

十四、输出花的个数

描述
在控制台输出所有的“水仙花数”。
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153

#include <iostream>
#include<cmath>
using namespace std;
int main() {
    for(int m_hua=100;m_hua<=999;m_hua++)
    { 
    int a=m_hua/100;
    int b=(m_hua/10)%10;
    int c=m_hua%10;
        if(pow(a,3)+pow(b,3)+pow(c,3)==m_hua)
            cout<<m_hua<<endl;
    }
    return 0;
}

十五、打印乘法表

描述
键盘输入一个正整数 n,打印对应的乘法表。
例如键盘输入 3,则打印 3 × 3 乘法表
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
输入描述:
输入 1 - 9 之间的任意一个正整数 n
输出描述:
输出对应的乘法表。
例如键盘输入 3,则打印 3 × 3 乘法表
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
要求:数字和符号之间空格隔开,式子和式子之间使用 4 个空格隔开

#include <iostream>
using namespace std;
int main() {    
    int n;
    cin >> n;
    for(int i=1;i<=n;i++)
    {   
        for(int j=1;j<=i;j++)
        {
        cout<<j<<" * "<<i<<" = "<<j*i<<"    ";
        }
        cout<<endl;
    }
    return 0;
}

十六、数列求和

描述
有数列为:9,99,999,…,9999999999(10个9)。要求使用循环结构编写程序计算此数列的和,并在控制台输出结果。

#include <iostream>
using namespace std;
int main() {
    long long sum=0;
    long long num=0;
    for(int i=1;i<=10;i++)
    {
        num=num*10+9;
        sum+=num;
        }
    cout<<sum<<endl;
    return 0;
}

十七、计算小球走过的路程和高度

描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)

#include <iostream>
#include <iomanip>
#include<cmath>
using namespace std;
int main() {
    // 下落的高度和落地的次数
    double h;
    int n;
    cin >> h;
    cin >> n;
    double sum=0;
    for(int i=0;i<n;i++)
    {    
        sum+=h;
        if(i>0)
        sum+=h;
        h=h/2.0;
    }
    cout<<setiosflags(ios::fixed) << setprecision(1)<<sum<<" ";
    cout<<setiosflags(ios::fixed)<<setprecision(1)<<h<<endl;  
    return 0;
}

十八、判断是不是质数

描述
输入一个大于 1 的整数,判断其是不是质数。
输入描述:
输入一个大于 1 的整数
输出描述:
输出这个数是否是质数,如果是质数则输出“是质数”,否则输出“不是质数”

#include <iostream>
using namespace std;
int main() {
    int n;
    int i=1;
    cin>>n;
    for(;i<n;i++)
    {
        if(n%i==0&&n!=1&&i!=1)
        {
            cout<<"不是质数"<<endl;
            int i=0;
            break;
        }
    }
    if(i==n)
    {
        cout<<"是质数"<<endl;
    }
    return 0;
}

总结

善于总结,多进一步。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值