华师一附中OI组

标题: 初级班训练题 [打印本页]

作者: admin    时间: 2014-10-12 13:36
标题: 初级班训练题
1、交换两个数字  输入两个数字,交换后输出
2、判断闰年  输入某个年份,判断时是否闰年
3、最大公约数  输入两个正整数,求他们的最大公约数
4、阶乘  输入一个小整数,求它的阶乘
5、百鸡问题  100元钱买了100只鸡,其中公鸡每只3元钱,母鸡每只1元钱,小鸡每三只一元钱,请问有多少种买法
6、水仙花数  求满足 a^3+b^3+c^3=abc的所有数字,比如 371  
7、素数判断  输入一个正整数,判断他是否是质数
8、斐波那契数列  打印fibo数列前10项
9、验证哥德巴赫猜想  任何一个大于2的偶数都可以表示为两个素数的和,输入一个大偶数,输出两个质数,使得它们的和等于那个偶数
作者: hr567    时间: 2014-10-12 15:49
沙发……
求更多题目。
作者: diggersun    时间: 2014-10-14 18:25
#include <iostream>
using namespace std;
int a,b,c;
int main()
{
    cin>>a>>b;
    c=a;a=b;b=c;
    cout<<a<<' '<<b;
    return 0;
}

作者: diggersun    时间: 2014-10-14 18:30
#include <iostream>
using namespace std;
int y;
bool b;
int main()
{
    cin>>y;
    b=(y%400==0)||((y%4==0) && (y%100!=0));
    if (b) cout<<"YES!";
    else cout<<"No!";
    return 0;
}

作者: diggersun    时间: 2014-10-14 18:36
#include <iostream>
using namespace std;
int a,b,c;
int main()
{
    cin>>a>>b;
    c=a%b;
    while (c!=0)
    {
        a=b;b=c;c=a%b;
    }
    cout<<b;
    return 0;
}

作者: Settwarl    时间: 2014-10-14 18:37
第四题:
#include<iostream>
using namespace std;
double f(int n)
{
    if(n<=1)
        return 1;
    else
        return 1.0*n*f(n-1);
}

int main()
{
   
        cout<<"Input integer n:";
        int n;
        cin>>n;
        cout<<"n!="<<f(n)<<endl<<endl;
   
    return 0;
}

作者: diggersun    时间: 2014-10-14 18:41
#include <iostream>
using namespace std;
int i,j;
long long s;
int main()
{
    cin>>i;
    for (j=1,s=1;j<=i;j++) s=s*j;
    cout<<s;
    return 0;
}

作者: diggersun    时间: 2014-10-14 18:46
#include <iostream>
using namespace std;
int g,m,x;
int main()
{
    for (g=0;g<=100;g++)
        for (m=0;m<=100;m++)
          for (x=0;x<=100;x++)
            if ((g+m+x==100) && (g*3+m+float(x)/3==100))
               cout <<g<<' '<<m<<' '<<x<<endl;


    return 0;
}

作者: Settwarl    时间: 2014-10-14 18:47
第三题递归解:
#include<iostream>
using namespace std;
int f(int a,int b)
{
    int c=a>b?a:b;
    int d=a+b-c;
    if(b>0)
        return f(d,c%d);
    else
        return a;
}

int main()
{   
        cout<<"Input integers a,b:";
        int a,b;
        cin>>a>>b;
        cout<<f(a,b)<<endl;
   
    return 0;
}

作者: diggersun    时间: 2014-10-14 18:48
#include <iostream>
using namespace std;
int g,m,x;
int main()
{
    for (g=0;g<=100/3;g++)
        for (m=0;m<=100;m++)
    {
        x=100-g-m;
        if (g*3+m+float(x)/3==100)
        cout <<g<<' '<<m<<' '<<x<<endl;
    }


    return 0;
}

作者: diggersun    时间: 2014-10-14 18:59
#include <iostream>
#include <cmath>
using namespace std;
int x,i; bool b=true;
int main()
{
    cin>>x;i=2;
    while ((i<=sqrt(x))&&b)
        if (x%i==0) b=false;
        else i++;
    cout<<(b?"yes":"No");
    return 0;
}

作者: diggersun    时间: 2014-10-14 19:05
#include <iostream>
using namespace std;
int a,b,c,i;
int main()
{
    cout<<1<<' '<<1<<' ';
    a=b=1;
    for (i=3;i<=10;i++)
    {
       c=a+b;a=b;b=c;
       cout<<c<<' ';
    }

    return 0;
}

作者: diggersun    时间: 2014-10-14 19:12
#include <iostream>
#include <cmath>
using namespace std;
int x,i,j,ii,b1,b2;
int main()
{
    cin>>x;
    for (i=2;i<=x/2;i++)
    {
        j=x-i;
        b1=true;ii=2;
        while ((ii<=sqrt(i))&& b1)
            if (i%ii==0) b1=false;
            else ii++;
        b2=true;ii=2;
        while ((ii<=sqrt(j))&& b2)
            if (j%ii==0) b2=false;
            else ii++;
        if (b1&&b2) cout <<x<<'='<<i<<'+'<<j<<endl;
    }
    return 0;
}





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2