OJ算法可运行⑤

OJ算法题共10个篇幅,不定期在篇幅里增加题目(篇幅不增加)。

个人水平有限,如有错误和可以改进的地方,非常期待批评指正,谢谢!

题目描述

Tarpe 酋长有个好朋友,为了纪念伟大的王,他打算和 Tarpe 酋长做个交易,他现在有 a
资本,希望在交易前知道预期的总收益 b(包括 a 资本),已知交易的回报率为 c%


输入

一行,每行两个数 a,c
,以一个空格隔开 (保证 a,c

为正数,可以为小数)
输出

输出一行,b
的值,保留 2

位小数
输入样例

100 2

输出样例

102.00

Hint

总收益 = 资本∗(1 + 回报率), 注意数据可以为小数, 输出两位小数的方法:printf(“%.2f”,b);
 

#include<stdio.h>
int main()
{
    float a,c;
    scanf("%f%f",&a,&c);
    c=c/100;
    printf("%.2f",a*(1+c));
    return 0;
}

 

题目描述

Terry的室友睡觉的时候会说梦话,但是他不承认,除非Terry能把他的梦话写出来。于是,某天夜里

室友:

?*&\!_//\a@\\\r\n!

/\//\\"_"/\\^!~zZ

Terry也不知道自己为什么要在题目中这样黑自己的室友,但是这不重要。重要的是,你们需要把这段话写出来。
输入


输出

请输出室友的梦话
输出样例

?*&\!_//\a@\\\r\n!//\\"_"/\\^!~zZ

HINT

转义符是个什么东东呢,建议查阅资料好好讨论一下哦
 

#include<stdio.h>
int main()
{
    printf("?*&\\!_//\\a@\\\\\\r\\n!//\\\\\"_\"/\\\\^!~zZ");
    return 0;
}

题目描述

有这样一个序列 "abcdefgabcdefgabcdefg......",要求找出从头开始第 i
个字母是哪个,字母从 1

开始编号。
输入

一个正整数,保证在 int 的范围内,表示 i


输出

输出找到的字母
输入样例

9

输出样例

b

HINT

序列是有规律的

#include<stdio.h>
int main()
{
 int n,b;
 int L,i;
 scanf("%d",&n);
 b=n%7;
 switch(b){
 	case 0: printf("g");break;
 	case 1: printf("a");break;
 	case 2: printf("b");break;
 	case 3: printf("c");break;
 	case 4: printf("d");break;
 	case 5: printf("e");break;
 	case 6: printf("f");break;
 }
 return 0;
}

题目描述

在干掉了guangtou之后,无聊的零崎又去找事了……

说起来零崎前几周学到了一个叫做Apriori算法的东西,其第一步是挑出所有出现频率大于某个给定值的数据。然而作为一个具有一定程度的强(qiǎng )迫(pò)症的人,零崎显然希望先排个序再对其子集进行操作。

于是,现在的任务是简单的升序排列。
输入

多组输入数据,每组两行,第一行为一个整数n。第二行为n个整数。
输出

每组一行,输出n个整数的升序排列,两个整数之间用一个空格隔开。
输入样例

5
6 5 2 3 1 

输出样例

1 2 3 5 6

#include<stdio.h>

/*void swap(int *a,int *b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}*/

void quicksort(int *a, int left, int right){
    if(left >= right){
        return ;
    }
    int i = left;
    int j = right;
    int key = a[left];
    while(i < j){
        while(i < j && key <= a[j]){
            j--;
        }
        a[i] = a[j];
        while(i < j && key >= a[i]){
            i++;
        }
        a[j] = a[i];
    }
    a[i] = key;
    quicksort(a, left, i - 1);
    quicksort(a, i + 1, right);
}

int main(){
    int n,a[10000];
    while(scanf("%d",&n)){
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        quicksort(a,0,n-1);
        for(int i=0;i<n;i++){
            printf("%d ",a[i]);
        }
        printf("\n");
    }

}

//通过不了,答案正确
#include<stdio.h>
int A[];
int B[];
int main(){
    int n,number=0,temp;
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            scanf("%d",&A[i]);
            for(int j=0;j<i;j++){
                if(A[i]<A[j]){
                    temp=A[i];
                    A[i]=A[j];
                    A[j]=temp;
                }
            }
        }
        for(int i=0;i<n;i++){
            printf("%d ",A[i]);
        }
    }
    return 0;
}

 

题目描述

计算A+B
输入

第一个数为数据组数n

接下来n行,每行2个整数a,b(保证a,b, a+b在int范围内)
输出

对于每组数据,输出一行,a+b的值
输入样例

1
1 2

输出样例

3

#include<stdio.h>
int main()
{
    int n,a,b;
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            scanf("%d %d",&a,&b);
            printf("%d\n",a+b);
        }
    }
    return 0;
}

 

均成绩吧(输出保留两位小数)

输入
共一行,每行3个数字分别为3位同学的成绩(成绩在1到100之间)

输出
3位同学的平均成绩。

输入样例
1 4 5

输出样例
3.33

提示
jhljx大西瓜不会说cool_breeze是要你们把输出结果保留两位小数。 即便是整数比如5也得变成5.00

c++中保留小数需要使用iomanip头文件。像这样
include<iomanip>
输出一个数的时候这样,
double a;
cin>>a;
cout<<fixed<<setprecision(2)<<a<<endl;
这样即对a这个double数字保留了小数点后两位小数。

#include<stdio.h>
int main(){
    float a,b,c;
    while(scanf("%f%f%f",&a,&b,&c)!=EOF){
        printf("%.2f\n",(a+b+c)/3);
    }
    return 0;
}

 

题目描述
极具北航特色的TD线(too dangerous line)现在开通啦!不知道大家有没有去刷呢?新版的TD每天可以刷3次哦O(∩∩)O
作为勤奋的Coolbreeze猪脚,可是一次都不肯落下呢。假设每学期要刷n次 TD,那么cool_breeze猪脚只需要多少天就可以完成任务呢?

输入
共一组数据,每组一个数字n(1<=n<=1000)

输出
Cool_breeze猪脚需要多少天才可以完成TD任务

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

#include<stdio.h>
int main()
{
    int n,a;
    while(scanf("%d",&n)!=EOF){
            a=n%3;
            if(a>0)
                a=1;
            printf("%d\n",n/3+a);
    }
    return 0;
}

 

题目描述

大家好,熟悉的a+b又和大家见面了呢O(∩_∩)O。

大家赶紧动动手,A了我吧 ^_^
输入

共一组,每组两个数字a,b(a,b均在int范围内)
输出

输出一行,a+b的值
输入样例

1 2

输出样例

3

#include<stdio.h>
int main()
{
    int a,b;
        while(~scanf("%d %d",&a,&b)){
        printf("%d\n",a+b);
        }
    return 0;
}

上一篇

下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磊磊cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值