zoukankan      html  css  js  c++  java
  • COdevs 天梯 水题系列

    1203 判断浮点数是否相等

    时间限制: 1 s    空间限制: 128000 KB    题目等级 : 青铜 Bronze

    题目描述 Description
    给出两个浮点数,请你判断这两个浮点数是否相等
    输入描述 Input Description
    输入仅一行,包含两个浮点数
    输出描述 Output Description
    输出仅一行,如果相等则输出yes,否则输出no。
    样例输入 Sample Input
    2.980000001 2.9800000000001
    样例输出 Sample Output
    yes
    数据范围及提示 Data Size & Hint
    我们一般认为两个浮点数相等,当且当他们之间的误差不超过1e-8。
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 char s1[500],s2[500];
     6 int main()
     7 {
     8     cin>>s1>>s2;
     9     int cnt=0,cur=-1;
    10     while(cnt<strlen(s1)){
    11         if(s1[cnt]==s2[cnt]&&s2[cnt]=='.') cur=0;
    12         if(s1[cnt]==s2[cnt]) cnt++;
    13         if(cur>=0) cur++;
    14         if(cur==8){ printf("yes");return 0; }
    15         if(s1[cnt]!=s2[cnt]&&cur<8){ printf("no");return 0; }
    16     }
    17     return 0;
    18 } 

    2235 机票打折

    时间限制: 1 s    空间限制: 32000 KB    题目等级 : 青铜 Bronze

    题目描述 Description

    .输入机票原价(3到4位的正整数,单位:元),再输入机票打折率(小数点后最多一位数字)。编程计算打折后机票的实际价格(单位:元。计算结果要将个位数四舍五入到十位数“元”)。输入只有一行两个数(两数间用一个空格分隔),第一个为整数,表示机票原价,第二个整数或实数(如是实数,小数点后最多1位数字)表示打折率。

    输入样例1:

    888  7

    输出样例1:

    620

    输入样例2:

    1255  7 

    输出样例2:

     880

    输入描述 Input Description

    输入只有一行两个数(两数间用一个空格分隔),第一个为整数,表示机票原价,第二个整数或实数(如是实数,小数点后最多1位数字)表示打折率。

    输出描述 Output Description

    输出只有一行一个正整数,表示打折后的机票价格。

    样例输入 Sample Input

    888 7

    样例输出 Sample Output

    620

    数据范围及提示 Data Size & Hint

    原机票价格大于100小于9999,打折率大于1小于9.9。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 int n;
     6 double m;
     7 int k;
     8 int main()
     9 {
    10     scanf("%d%lf",&n,&m);
    11     m*=0.1;n=n*m;k=n%10;
    12     if(k<=4) n-=k;
    13     if(k>=5) n+=(10-k);
    14     printf("%d
    ",n);
    15     return 0;
    16 } 

    1204 寻找子串位置

    时间限制: 1 s    空间限制: 128000 KB    题目等级 : 青铜 Bronze

    题目描述 Description

    给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。

    输入描述 Input Description

    仅一行包含两个字符串a和b

    输出描述 Output Description

    仅一行一个整数

    样例输入 Sample Input

    abcd bc

    样例输出 Sample Output

    2

    数据范围及提示 Data Size & Hint

    字符串的长度均不超过100

    Pascal用户请注意:两个字符串之间可能包含多个空格

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 char s1[120],s2[120];
     6 void getNext(char *p,int *next) {
     7     int j,k;
     8     next[0]=-1;
     9     j=0;
    10     k=-1;
    11     while(j<strlen(p)-1) {
    12         if(k==-1||p[j]==p[k]) { //匹配的情况下,p[j]==p[k]
    13             j++;
    14             k++;
    15             next[j]=k;
    16         } else //p[j]!=p[k]
    17             k=next[k];
    18     }
    19 }
    20 int KMPMatch(char *s,char *p) {
    21     int next[100];
    22     int i=0,j=0;
    23     getNext(p,next);
    24     while(i<strlen(s)) {
    25         if(j==-1||s[i]==p[j]) {
    26             i++;
    27             j++;
    28         } else {
    29             j=next[j]; //消除了指针 i 的回溯
    30         }
    31         if(j==strlen(p))
    32             return i-strlen(p);
    33     }
    34     return -1;
    35 }
    36 int main(){
    37     cin>>s1>>s2;
    38     printf("%d
    ",KMPMatch(s1,s2)+1);
    39     return 0;
    40 }

    暴力稳过的一个题,为了装逼还是用了刚学的KMP算法。

  • 相关阅读:
    推箱子
    为textarea增加maxlength属性(转)
    validate
    keypress
    Knockout
    &amp; replace &
    银联参数
    chinapay
    model binding
    JSON.stringify
  • 原文地址:https://www.cnblogs.com/suishiguang/p/6295955.html
Copyright © 2011-2022 走看看