OJ题——组合题

来源:互联网 发布:msde数据库引擎 win7 编辑:程序博客网 时间:2024/05/21 00:20

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:李晓凯
 * 完成日期:2015年 4 月 21 日
 * 版 本 号:v1.0
 *
 * 问题描述:
 * 输入描述:
 * 程序输出:

 */

题目描述
输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。


输入
一行字符


输出
加密处理后的字符


样例输入
a b
样例输出
b c




#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    int i=0;
    char a[100];
    gets(a);
    int len=strlen(a);
    while (a[i]!='\0')
    {
        if (a[i]>='a'&&a[i]<'z')
            a[i]+=1;
        else if (a[i]=='z')
            a[i]='a';
            i++;
    }
    for(i=0; i<len; i++)
        cout<<a[i];
    return 0;
}




题目描述
求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和


输入
a b c


输出
1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c


样例输入
100 50 10
样例输出
47977.93




#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    double sum1,sum2,sum3;
    sum1=sum2=sum3=0;
    int a,b,c;
    double i;
    cin>>a>>b>>c;
    for(i=1;i<=a;i++)
    {
        sum1+=i;
    }
    for(i=1;i<=b;i++)
        sum2+=i*i;
    for(i=1;i<=c;i++)
        sum3+=1/i;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum1+sum2+sum3<<endl;
    return 0;
}




题目描述
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。


输入
输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束。


输出
对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。


样例输入
1
2
0
样例输出
1
2




#include <iostream>
using namespace std;
int main()
{
    int a[100],i,j;
    a[0]=1;
    a[1]=2;
    for(i=2;i<=40;i++)
        a[i]=a[i-1]+a[i-2];
    while(cin>>i&&i!=0)
        cout<<a[i-1]<<endl;
    return 0;
}




题目描述
有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。


输入
N


输出
数列前N项和


样例输入
10
样例输出
16.48






#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int i,n,t;
    double a=2,b=1,sum=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
        sum+=a/b;
        t=a;
        a=a+b;
        b=t;
    }
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;
    return 0;
}






题目描述
设圆半径r,圆柱高h 求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 PI=3.14


输入
两个浮点数,r和h


输出
圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。保留两位小数,每个结果后换行。


样例输入
1.5 3
样例输出
C1=9.42
Sa=7.07
Sb=28.26
Va=14.13
Vb=21.19




提示


 浮点数请用float类型








#include <iostream>
#include <iomanip>
using namespace std;
const float PI=3.14;
int main()
{
    float
     r,h;
    float C1,Sa,Sb,Va,Vb;
    cin>>r>>h;
    C1=2*PI*r;
    Sa=PI*r*r;
    Sb=4*PI*r*r;
    Va=(4*PI*r*r*r)/3;
    Vb=Sa*h;
    cout<<"C1="<<setiosflags(ios::fixed)<<setprecision(2)<<C1<<endl;
    cout<<"Sa="<<Sa<<endl;
    cout<<"Sb="<<Sb<<endl;
    cout<<"Va="<<Va<<endl;
    cout<<"Vb="<<Vb<<endl;
    return 0;
}






0 0
原创粉丝点击