double快读(算是int快读的扩展吧)

    科技2025-07-09  6

    1.思路

    小数=整数部分+小数部分 而这两个部分可以用快读int的方法来完成(第二个要改亿改) 如果没有小数点 就直接返回整数部分 如果有小数点 组合到一起并返回就行了 要注意 负小数=整数部分-小数部分 所以要再加一个判断是否是负数

    2.代码

    double readD() { int zh = 0;//整数部分 int w = 1;//符号 bool flag = false;//有没有小数点 double xi = 0.0;//小数部分 double x = 1.0;//该除以几了 即插到哪一位 char ch = getchar();//开 始 生 草 快 读 while (ch < '0' || ch > '9')//茫茫字海找负号 { if (ch == '-') w = -1;//找到就把它设置 ch = getchar();//否则跳过下一个 } while (ch >= '0' && ch <= '9')//整数部分已开始 { zh = zh * 10 + ch - '0';//前挪一位加数字 ch = getchar();//加完之后下一个 } while (ch < '0' || ch > '9')//开始寻找小数点 { if (ch == '.') flag = true;//如果有就设置好 ch = getchar(); } if (!flag) return zh;//如果没有返整数 while (ch >= '0' && ch <= '9')//开始了小数部分 { x *= 10;//后移一位好添加 xi = xi + (ch - '0') / x;//往后加一个数位 ch = getchar();//加完之后下一个 } if (w == 1) return zh + xi;//如果是正把加返 else return zh - xi;//如果是负把减还 }//生 草 快 读 结 束

    3.结语

    大家理解即可qwq 既然都看到这了,不三连一个在走吗

    Processed: 0.009, SQL: 8