关闭

NOI题解(1.3编程基础之算术表达式与顺序执行)

2822人阅读 评论(0) 收藏 举报
分类:



01:A+B问题

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



02:计算(a+b)*c的值

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

03:计算(a+b)/c的值

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

04:带余除法

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

05:计算分数的浮点数值

#include "iostream"
#include "iomanip"
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<fixed<<setprecision(9)<<(double)a/(double)b;
    return 0;
}

06:甲流疫情死亡率

#include "iostream"
#include "iomanip"
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<fixed<<setprecision(3)<<(double)b*100/(double)a<<"%";
    return 0;
}

07:计算多项式的值

#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
int main()
{
    double x,a,b,c,d;
    cin>>x>>a>>b>>c>>d;
    cout<<fixed<<setprecision(7)<<a*pow(x,3)+b*pow(x,2)+c*x+d;//直接调用库函数中的pow(x , y)。添加头文件#include <math.h>
    return 0;
}

08:温度表达转化

#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
int main()
{
    double F;
    cin>>F;
    cout<<fixed<<setprecision(5)<<5 * (F-32) / 9;
    return 0;
}

09:与圆相关的计算

#include "iostream"
#include "math.h"
#include "iomanip"
#define pi 3.14159
using namespace std;
int main()
{
    double r;//float精度不够,float的小数点后十进制有效位数只有7位
    cin>>r;
    cout<<fixed<<setprecision(4)<<2*r<<" "<<2 * pi * r<<" "<<pi * r * r;
    return 0;
}

10:计算并联电阻的阻值

#include "iostream"
#include "iomanip"
using namespace std;
int main()
{
    float r1,r2;
    cin>>r1>>r2;
    float R = 1/(1/r1 + 1/r2);
    cout<<fixed<<setprecision(2)<<R;
    return 0;
}


11:计算浮点数相除的余数

#include "iostream"
#include "iomanip"
using namespace std;
/*
 输出时小数尾部没有多余的0,可以用下面这种格式:
 double x;
 x = 1.33;
 printf("%g", x);
 */
int main()
{
    double a,b;
    cin>>a>>b;
    int temp=a/b;
    printf("%g",a-temp*b);
    return 0;
}

12:计算球的体积

#include "iostream"
#include "iomanip"
using namespace std;
#define pi 3.14
/*
 输出时小数尾部没有多余的0,可以用下面这种格式:
 double x;
 x = 1.33;
 printf("%g", x);
 */
int main()
{
    double r;
    cin>>r;
    cout<<fixed<<setprecision(2)<<(double)4/(double)3*pi*r*r*r;
    return 0;
}

13:反向输出一个三位数

#include "iostream"
using namespace std;
int main()
{
    string str;
    cin>>str;
    for(int i=str.length()-1;i>=0;i--)
    {
        cout<<str.at(i);
    }
    return 0;
}

14:大象喝水

#include "iostream"
using namespace std;
#define Pi 3.14159
#define water 20000
int main()
{
    int h,r;
    cin>>h>>r;
    if(water%(int)(Pi*r*r*h)!=0)
    {
        cout<<water/(int)(Pi*r*r*h)+1;
    }else
    {
        cout<<water/(int)(Pi*r*r*h);
    }
    return 0;
}

15:苹果和虫子

#include "iostream"
using namespace std;
int main()
{
    int n,x,y;
    cin>>n>>x>>y;
    int remain;
    if(y%x!=0)
    {
        remain=n-(y/x+1);
    }else
    {
        remain=n-(y/x);
    }
    cout<<remain;
    return 0;
}


16:计算线段长度

#include "iostream"
#include "math.h"
#include "iomanip"
/*
 qrt函数有三种形式
 
 double sqrt(double x);
 float sqrtf(float x);
 long double sqrtl(long double x);
 
 三种形式的区别只是参数和返回值的精度不同,float精度最低,double较高,long double精度最高
 */
using namespace std;
int main()
{
    float xa,ya,xb,yb;
    cin>>xa>>ya>>xb>>yb;
    cout<<fixed<<setprecision(3)<<sqrt(pow((xa-xb),2)+pow((ya-yb), 2));
    return 0;
}

17:计算三角形面积

#include "iostream"
#include "math.h"
#include "iomanip"
/*
 海伦公式
 sqrt(p*(p-a)*(p-b)*(p-c))
 公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积
 */
using namespace std;
int main()
{
    float x1,y1,x2,y2,x3,y3;
    cin>>x1>>y1>>x2>>y2>>x3>>y3;
    float a=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
    float b=sqrt(pow((x2-x3),2)+pow((y2-y3),2));
    float c=sqrt(pow((x1-x3),2)+pow((y1-y3),2));
    float p=(a+b+c)/2;
    cout<<fixed<<setprecision(2)<<sqrt(p*(p-a)*(p-b)*(p-c));
    return 0;
}

18:等差数列末项计算

#include "iostream"
#include "math.h"
#include "iomanip"
/*
*/
using namespace std;
int main()
{
    int a1,a2,n;
    cin>>a1>>a2>>n;
    int len=a2-a1;
    cout<<a1+len*(n-1);
    return 0;
}

19:A*B问题

#include "iostream"
#include "math.h"
#include "iomanip"
/*
 对于无符号数,根据占用的位数可以直接计算:
 unsigned short 16位 0~2的16次方-1(即65535)
 unsigned int 16位 0~2的16次方-1(即65535)
 unsigned long 32位 0~2的32次方-1(即4294967295)
 
 对于有符号数,由于0也占用一个位置,导致负数的边界值与正数的边界值不一样:
 short 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
 int 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
 long 32位 - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483647)
*/
using namespace std;
int main()
{
    unsigned int A,B;
    cin>>A>>B;
    unsigned long C=A*B;
    cout<<C;
    return 0;
}

20:计算2的幂

#include "iostream"
#include "math.h"
#include "iomanip"
/*
 可以这样写
 cout<<setiosflags(ios::fixed)<<f<<endl;
 setiosflags(ios::fixed)就是以定点数格式,而不是科学计数法输出
 */
using namespace std;
int main()
{
    unsigned int n;
    cin>>n;  
    cout<<fixed<<setprecision(0)<<pow(2,n);
    return 0;
}






1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:162474次
    • 积分:3586
    • 等级:
    • 排名:第9638名
    • 原创:200篇
    • 转载:6篇
    • 译文:0篇
    • 评论:60条
    博客专栏
    最新评论