zoukankan      html  css  js  c++  java
  • Blue-whale writeup

    Coding01

    整数判断

    样例中输入都是数字与小数点和正负号,没有字母、符号,因此只考虑小数点问题;

    输入中有特别长的,因此用字符串处理即可;

    判断小数点后的数字的和是不是0,如果不是0,就是小数;

    要注意的是,如果字符串处理到结尾,就直接跳出,判断是不是整数然后输出就结束了;

    而如果碰到小数点,则直接进入下一个字符的处理。

    代码如下:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char input[50000];
     5     int sum= 0; 
     6     int flag = 0;//标记有没有出现小数点 
     7     int YorN = 0;//正确与否 
     8     for(int j = 0 ; j < 9 ; j++){
     9         flag = sum = YorN = 0;
    10         scanf("%s",input) ;    
    11         //对输入用字符串处理,并对获取的每个字符进行判断
    12         for(int i = 0 ; i < 50000;i++){
    13             //判断是否结束
    14             if(input[i] == ''){
    15                 //如果小数点后面有非零的数字,非整数
    16                 if(sum){
    17                     YorN = 1;
    18                 }
    19                 //如果结束,直接跳出循环
    20                 break;
    21             }
    22             //如果出现小数点,标记flag,并直接跳至循环末尾
    23             if(input[i] == '.'){
    24                 flag = 1;
    25                 continue;
    26             }
    27             //如果之前出现过小数点,则用sum记录小数点后面的数字
    28             if(flag){
    29                 sum += input[i] - '0';    //累加小数点后面的数字 
    30             }
    31         }
    32         //如果YorN为1,非整数,输出
    33         if(YorN){
    34             printf("NO
    ");
    35         }else{
    36             printf("YES
    ");
    37         }
    38     }
    39     return 0;
    40 } 

    Coding02

    数字判断

    同样用字符串进行处理

    如果小数点个数必须是一个

    负号的位置必须是第一个位置

    否则是错

    我们要关心那些非阿拉伯数字中的非小数点,非负号的字符

     出现就为错

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char input[50000];
     5     int flag ;//标记YES or NO 
     6     int pn;//小数点的个数 
     7     for(int j = 0 ; j < 10 ; j ++){
     8         pn = 0; 
     9         flag = 0;
    10         scanf("%s",input);
    11         for(int i = 0 ;i < 50000;i++){
    12             //判断是否结束,结束就跳出
    13             if(input[i] == '')
    14                 break;
    15             //如果碰到非数字进入
    16             if(input[i] < '0' || input[i] > '9') {    
    17                 //如果不是小数点
    18                 if(input[i] != '.'){
    19                     if(input[0] == '-' && i == 0){//如果是判断第一位,且第一位是‘ - ’,直接看第二个 
    20                         continue;
    21                     }else{
    22                         //标记不是数字
    23                         flag = 1;
    24                         break;
    25                     }
    26                 }else{
    27                     //如果是小数点,记录小数点的出现次数
    28                     pn++;
    29                 } 
    30                 if(pn > 1){//如果不止一个小数点 ,不是数字 
    31                     flag = 1;
    32                     break;
    33                 }
    34             }
    35         }
    36         if(flag){
    37             printf("NO
    ");
    38         }else{
    39             printf("YES
    ");
    40         }        
    41     }
    42     return 0;
    43 } 
  • 相关阅读:
    git 命令手册
    leetcode #7 revert integer 问题
    leetcode #1 twoSum问题:简单实用哈希表
    c++模板函数分离编译的问题
    matlab 与c/c++ 混合MEX的编程
    springboot项目打war包
    springboot-jpa多数据源
    springboot使用RestTemplate+httpclient连接池发送http消息
    IDEA如何安装lombok
    Springboot如何启用文件上传功能
  • 原文地址:https://www.cnblogs.com/gudygudy/p/7638011.html
Copyright © 2011-2022 走看看