oj平台 期末刷题二(第六到第十)

来源:互联网 发布:1024最新地址知乎 编辑:程序博客网 时间:2024/06/04 18:04

问题及代码:

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月11日*版本号:v1.0*问题描述:输入6名同学的性别,统计男同学的个数,用整数1表示男,整数0表示女。*输入描述:6名同学的性别*输出描述:男同学的个数*/#include <iostream>using namespace std;int main(){    int a,b=0;    cin>>a;    for(int i=0; i<6; i++)    {        if(a%10==1)        {            b++;        }        a=a/10;    }    cout<<b<<endl;    return 0;}


运行结果:

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月11日*版本号:v1.0*问题描述:传说中有这样一堆黑豆,它的数量是不一定的,会不断的变化,没有人可以数清他的数量。智者Radish一直想数清黑豆的数量,但是他一直找不到答案。。。。有一天,智者梦见了一只甲鱼驮着一个女神向他飘来,然后女神告诉他,黑豆的变化是有规律的。说,黑豆之数,三三数之剩二,五五数之剩三,七七数之剩二。ps:用三去除余二,用五去除余三,用七去除余二说完飘然而去,Radish恍然大悟,终于总结出计算黑豆数量的公式,他把此公式命名为“黑豆式”。那么现在问题来了,请你根据“黑豆式”计算出N(>=1000)之内的黑豆的最大数量。*输入描述:N*输出描述:黑豆的最大数量*/#include <iostream>using namespace std;int main(){    int N,n,x=0;    cin>>N;    for (n=0; n<=N; ++n)    {        if (n%3==2 &&  n%5==3  &&  n%7==2)        {            if (n>=x)                x=n;        }    }    cout<<x;    return 0;}


运行结果:

 

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月12日*版本号:v1.0*问题描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 。小明只想练习该书的第a页到第b页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?*输入描述:有多组测试实例,输入小明想要练习的起始页a和末尾页b。(a<b)*输出描述:输出小明最少要带走的纸张,每行对应一个输出结果。*/#include <iostream>using namespace std;int main(){    int m,n,a;    while(cin>>n>>m)    {        a=m-n+2;     //两个面之间的面数z在加上旁边的两个面,为后面求多少页做准备        a=a/2;       //求两个面之间的页数        if(n%2!=0&&m%2==0)  //由于第10面与11面为同一页,所以当起始页不是2的倍数或末页为2的倍数时,之间会多一页            a++;        cout<<a<<endl;    }    return 0;}


运行结果:

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月12日*版本号:v1.0*问题描述:请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用"6.2f"格式输出。*输入描述:一个实数,float范围*输出描述:输出3行,第一行打印一遍输入的数,第二行打印两遍,第三行打印三遍。第二行和第三行,用空格分隔同一行的数字。实数用"6.2f"格式输出。*/#include <iostream>#include <stdio.h>using namespace std;int main(){float a;    scanf("%f",&a);    printf("  %.2f\n",a);printf("  %.2f   %.2f\n",a,a);printf("  %.2f   %.2f   %.2f\n",a,a,a);    return 0;}


运行结果:

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:曾建强*完成时间:2014年12月12日*版本号:v1.0*问题描述:对一个正小数(包含3位整数和3位小数)分别输出其整数部分和小数部分。*输入描述:输入一个正小数*输出描述:按题目要求的格式输出*/#include <iostream>using namespace std;int main(){    double a;    int b,c;    cin>>a;    b=int(a);    cout<<b<<endl;    c=(a-b)*1000;    cout<<c<<endl;    return 0;}


运行结果:

0 0