关闭

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

3952人阅读 评论(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
查看评论

1.3编程基础之算术表达式与顺序执行

01:A+B问题 总时间限制: 1000ms 内存限制: 65536kB 描述 在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。 A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。 现在请你解决这一问题。 输入 ...
  • Dolor_Nan
  • Dolor_Nan
  • 2015-11-23 20:01
  • 6245

投入OJ的怀抱~~~~~~~~~~

OpenJudge C20182024信箱(1) 账号 修改设定 退出小组 管理员 frank  林舒  Dzx  someone  李文新 公告 11-05 程序设计与算法(大学先修课)...
  • C20182024
  • C20182024
  • 2016-11-15 18:31
  • 576

计算分数的浮点数值

入门难度,计算分数的浮点数值
  • Dark_v
  • Dark_v
  • 2017-03-28 17:11
  • 1427

05:计算分数的浮点数值

原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位) 输入输入仅一行,包括两个整数a和b 输出输出也仅一行,分数...
  • mayuan2017
  • mayuan2017
  • 2017-08-30 16:09
  • 575

1019#2011秋冬新款韩版女装修身中长款毛呢大衣 毛呢西装外套

促销价格 : 42.0 元 掌柜 : 花涩薰衣草 信用 : <img src="http://pics.taobaocdn.com/newrank/ http://pics.taobaocdn.com/newrank/s_cap_2.gif"> 30天累计售出 ...
  • gbj3311
  • gbj3311
  • 2011-12-29 04:19
  • 0

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

01:A+B问题 #include "iostream" using namespace std; int main() { int a,b; cin>>a>>b; cout<<a+b; return 0; ...
  • v_xchen_v
  • v_xchen_v
  • 2016-08-29 21:44
  • 3952

编程基础——第一单元 变量、顺序和分支1

编程基础——第一单元 变量、顺序和分支1
  • XNDXFSZX
  • XNDXFSZX
  • 2016-01-24 15:37
  • 379

NOI题解(1.12编程基础之函数与过程抽象)(待补全)

01:简单算术表达式求值 #include #include #include using namespace std; int main(int argc, char *argv[]) { string str; getline(cin,str); int pos...
  • v_xchen_v
  • v_xchen_v
  • 2016-09-01 17:46
  • 1058

NOI题解(1.10编程基础之简单排序)

简单排序:
  • v_xchen_v
  • v_xchen_v
  • 2017-08-03 10:53
  • 351

求值顺序问题

(1) m=1; n=m++m++; (2) a=0; if(a++||a) cout 如上式,在c++运算中,有特定的顺序点来完成此前需对变了所做的修改,比如 对a++中a进行+1操作。 C/C++语言定义(语言的参考手册)明确定义了顺序点的概念。顺序点位于: 1....
  • longneicool
  • longneicool
  • 2012-12-15 17:12
  • 268
    个人资料
    • 访问:258510次
    • 积分:4690
    • 等级:
    • 排名:第7382名
    • 原创:227篇
    • 转载:6篇
    • 译文:0篇
    • 评论:86条
    博客专栏
    最新评论