蓝桥杯训练第二次作业

来源:互联网 发布:cross over mac 编辑:程序博客网 时间:2024/05/22 00:44

第二次作业
嗯。。。高精度减法出了点问题
明天跟上次的题一起写个详细题解吧


1590A

题目描述
输入一个小于等于2000的正整数,检查该数是否为质数

输入
输入一个小于等于2000的正整数

输出
输出Y或者N

样例输入
34

样例输出
N

#include <bits/stdc++.h>using namespace std;bool prime(int x);int main(){    int a;    cin>>a;    if(prime(a))    {        cout<<"Y"<<endl;    }    else cout<<"N"<<endl;    return 0;}bool prime(int x){    if((x==2)||(x==3))    {        return true;    }    else    {        for(int i=2;i<sqrt(x);i++)    {        if(x%i==0)  return false;        else        return true;    }    }}

http://paste.ubuntu.com/23852412/


1584B

题目描述
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

输入
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。

输出
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。

样例输入
1 3
2 5

样例输出
4 28
20 152

#include<iostream>using namespace std;int main(){    int m,n;    while(cin>>m>>n)    {        int sumji=0,sumou=0;        for(int i=m;i<=n;i++)        {            if(i%2==0)            {                sumou+=i*i;            }            else            {                sumji+=i*i*i;            }        }        cout<<sumou<<" "<<sumji<<endl;    }    return 0;}

http://paste.ubuntu.com/23852442/


1574C

题目描述
角谷猜想:
日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。

输入
任一正整数

输出
演算的过程

样例输入
10

样例输出
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1

#include <iostream>using namespace std;int main(){    int fun(int x);    int n;    cin>>n;    fun(n);    return 0;}int fun(int x){    while(x>1)    {        if(x%2==0)        {         int x2;         x2=x/2;         cout<<x<<"/2="<<x2<<endl;         x=x2;        }        else        {            int x3;            x3=x*3+1;            cout<<x<<"*3+1="<<x3<<endl;            x=x3;        }    }}

http://paste.ubuntu.com/23852449/


1580D

题目描述
将十进制整数转换成二进制数

输入
输入数据中含有不多于50个整数n(-2^16<n<2^16)。

输出
对于每个n,以11位的宽度右对齐输出n值,然后输出“–>”,再然后输出二进制数。每个整数n的输出,独立占一行。

样例输入
2
0
-12
1

样例输出
2–>10
0–>0
-12–>-1100
1–>1

#include <bits/stdc++.h>using namespace std;int main(){    void fun(int x);    int n;    while(cin>>n)    {        printf("%11d-->",n);        fun(n);        printf("\n");    }    return 0;}void fun(int x){    if(x==0)    {        cout<<"0";    }    else if(x>0)    {        int temp,a[100],i=0;        temp=x;        while(temp!=0)        {            a[i]=temp%2;            temp=temp/2;            i++;        }        for(i>=0;i--;)        {            cout<<a[i];        }    }    else    {        int temp,a[100],i=0;        temp=abs(x);        while(temp!=0)        {            a[i]=temp%2;            temp=temp/2;            i++;        }        cout<<"-";        for(i>=0;i--;)        {            cout<<a[i];        }    }}

http://paste.ubuntu.com/23852457/


1609F

题目描述
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 数据规模与约定 1 < = n < = 1,000,000。

输入
输入包含一个整数n。

输出
输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入
10

样例输出
55

#include <bits/stdc++.h>#define m 10007#define n 1000000using namespace std;int f[n]={1,1,1};int main(){    int x;    cin>>x;    for(int i=3;i<=x;i++)    {        f[i]=(f[i-1]+f[i-2])%m;    }    cout<<f[x];    return 0;}

http://paste.ubuntu.com/23852464/


1193G

题目描述
根据输入的半径值,计算球的体积。

输入
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

输出
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

样例输入
1
1.5

样例输出
4.189
14.137

#include <iostream>#include <iomanip>#define PI 3.1415926using namespace std;int main(){    double r,v;    while(cin>>r)    {        v=4*PI*r*r*r/3;        cout<<fixed<<setprecision(3)<<v<<endl;    }    return 0;}

http://paste.ubuntu.com/


1579H

题目描述
Fans喜欢图形,而且喜欢把图形倒过来欣赏。有一次,他看见杨辉三角形 了,觉得很新鲜,于是就把它们大大小小地摆布出来。输入一些整数n(1≤n≤10),读入其每个整数,以该整数为行数,其画出来的倒杨辉三角形(每个数据 占三个字符)就是fans所喜欢欣赏的。Fans是手工做的,你却可以用编程更快捷地做出来,多爽啊!

输入

输出

样例输入
5
3

样例输出
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1

1 2 1
1 1
1

#include <bits/stdc++.h>using namespace std;int main(){    int b,a[100][100];    while(cin>>b)    {        for(int i=0;i<b;i++)    {        a[i][0]=a[i][i]=1;//每行边缘的1    }    for(int i=2;i<b;i++)    {        for(int j=1;j<b;j++)        {            a[i][j]=a[i-1][j]+a[i-1][j-1];//计算剩余的数值        }    }    for(int m=b-1;m>=0;m--)//倒层输出    {        for(int j=(b-1-m);j>0;j--)        {            cout<<"   ";        }        for(int n=0;n<=m;n++)        {            printf("%3d",a[m][n]);            if(m!=n)            {                cout<<"   ";            }        }        cout<<endl;    }    cout<<endl;    }    return 0;}

http://paste.ubuntu.com/23852476/


1499I

题目描述
橙子姐姐是东秦有名的围棋高手当他打败东秦所有围棋高手后,独自对着棋盘发呆。他发现,他下的奇葩围棋棋盘由m*n(1

#include <iostream>using namespace std;int main(){    int t;    cin>>t;    for(int i=1;i<=t;i++)    {        int m,n,mini;        unsigned long long sum=0;        cin>>m>>n;        mini=m>n?n:m;        for(int j=1;j<=mini-1;j++)        {            sum+=(m-j)*(n-j);        }        cout<<sum<<endl;    }    return 0;}

http://paste.ubuntu.com/23852483/


1581J

题目描述
读入一些字符串,将其中的空格去掉。

输入
输入为多行,每行为一个字符串,字符串只由字母、数字和空格组成,长度不超过80。输入以“End of file”结束。

输出
对于每行输入,输出转换后的字符串。

样例输入
Hello World
1 2 3
Nice to meet you
abc

样例输出
HelloWorld
123
Nicetomeetyou
abc

提示
用scanf是不能读入一行有空格的字符串的,用gets吧。 用“gets(str) != NULL”可以判断输入是否结束,如果此条件为假(即gets(str) == NULL),则表示输入结束(对于本题)。

#include <bits/stdc++.h>using namespace std;int main(){    int i;    char a[85];    while(gets(a) != NULL)    {        for(i=0;a[i]!='\0';)        {            if(a[i]==' ')            {                while(a[i]==' ')                i++;            }            else            {                cout<<a[i];                i++;            }        }        cout<<endl;    }    return 0;}

http://paste.ubuntu.com/23852485/


1146K

题目描述
所给字符串正序和反序连接,形成新串并输出

输入
任意字符串(长度<=50)

输出
字符串正序和反序连接所成的新字符串

样例输入
123abc

样例输出
123abccba321

#include <bits/stdc++.h>using namespace std;int main(){    char a[55];    int i=0,j;    gets(a);    printf("\0");    while(a[i]!='\0')  i++;    for(j=i-1;j>=0;j--)    {        a[i++]=a[j];    }    a[i]=0;    puts(a);    return 0;}

http://paste.ubuntu.com/23852495/

0 0
原创粉丝点击