循环语句练习

一.输出最大值

写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。

eg:输入39 28 5 63 18 27 0

输出63

#include <iostream>

using namespace std;

int main()
{
    cout<<"输入一批正数,至0结束"<<endl;
    int n,m=0;
    do
    {
        cin>>n;
        if(m<n)
        {
            m=n;
        }
    }while(n!=0);
    cout<<m<<endl;
    return 0;
}

二.素数

输入正数n,判断n是否为素数。若为素数则输出1,否则则输出0。

输入10输出0

输入7输出1

输入9输出0

#include <iostream>

using namespace std;

int main()
{
    int n = 0;
    cout<<"请输入一个数判断其是否为素数 "<<endl;
    cin>> n;
    for(int i = 2;i<n;i++)
    {
        if(n%i==0)
        {
            cout<<0<<endl;
            return 0;
        }
    }
    cout<<1<<endl;
    return 0;
}

三.数列求和

输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10…+1/(3*n-2)

输入5输出1.56978

输入4输出1.49286

#include <iostream>

using namespace std;

int main()
{
    int n = 0;
    cin>>n;
    double j =0;
    for(int i =1;i<=n;i++)
    {
        j+=1.0/(3*i-2);
    }
    cout<<j<<endl;
    return 0;
}

四.西瓜卖几天

n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。

输入:西瓜个数,输出:天数

输入10输出2

输入50输出4

输入120输出5

#include <iostream>

using namespace std;

int main()
{
    int n = 0;
    cin>>n;
    double j =0;
    for(int i =1;i<=n;i++)
    {
        j+=1.0/(3*i-2);
    }
    cout<<j<<endl;
    return 0;
}

五.斐波那契数列

判断第n个斐波那契数列能否被3整除,给定斐波那契数列为:F(0)=1,F(1)=1,F(n)=F(n-2)+F(n-1)(n>=2),编写一个程序,输入n(>=0),如果F(n)能被3整除,则输出1个“yes”,否则输出一个“no”。

输入8输出yes

输入6输出no

输入12输出yes

#include <iostream>

using namespace std;

int main()
{
    int a,b=1;
    int n =0;
    cin>>n;
    if(n<=2)
    {
        cout<<"no"<<endl;
        return 0;
    }
    for(int i=2;i<n;i++)
    {
        if(i%2==0)
        {
            a=a+b;
        }
        else
        {
            b=a+b;
        }
    } 
    n=a+b;
    if(n%3==0)
    {
        cout<<"yes"<<endl;
    }
    else
    {
        cout<<"no"<<endl;
    }
    return 0;
}

六.计算奇偶数

求N(<=100)个数中奇数的平方和与偶数的立方和。

注意:输入格式为,第一个数为N(不并入计算),后面接着N个数。输出的平方和与立方和以空格隔开。

输入3 5 8 9 输出106  512

输入5 5 8 9 10 10 输出106 2512

#include <iostream>

using namespace std;

int main()
{
    int p,q=0;
    int m,n=0;
    int a = 1;
    cin>>n;
    while(a<=n)
    {
        cin>>m;
        if(m%2==0)
        {
            q+=m*m*m;
        }
        else
        {
            p+=m*m;
        }
        a+=1;        
    };
    cout<<p<<endl;
    cout<<q<<endl;
    return 0;
}

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值