求调,全WA

P1320 压缩技术(续集版)

dami826 @ 2022-12-29 15:40:55

#include<bits/stdc++.h>
using namespace std;
int A[40001];
int main(){
    int a,b=0,c=0,d=1;
    while(cin>>a){
        b++;
        if(a!=c){
            d++;
            c=a;
        }
        A[d]++;
    }
    A[0]=sqrt(b);
    for(int i=0;i<=d;i++){
        if(i!=0){
            printf(" ");
        }
        printf("%d",A[i]);
    }
    return 0;
}

by LittleAcbg @ 2022-12-29 15:50:37

是不是 sqrt() 影响了精度?


by ZQIN_P @ 2022-12-29 15:54:32

@LuoJingjia 输入n*n的正方形,n一定为整数,不存在精度问题


by FelixYeFei @ 2022-12-29 15:55:38

@大米爱干饭 a和c要改成char类型


by LittleAcbg @ 2022-12-29 15:57:21

@planet_over_for_ever 未必,可能 b = 9,但 sqrt(b) 的结果变成了 2.9999999

难道洛谷没有这个 Bug?很多编译器都会有这样的 Bug


by dami826 @ 2022-12-29 15:58:38

@LuoJingjia 我是借鉴的题解第一篇,也是用的sqrt()


by LittleAcbg @ 2022-12-29 16:00:13

@大米爱干饭 哦,可能洛谷这个问题发生的概率比较小吧,因为 sqrt() 函数返回值是 float(还是 double 来着)


by dami826 @ 2022-12-29 16:01:20

@FelixYeFei 我不理解,改成char直接AC?


by 编码落寞 @ 2022-12-29 16:02:00

    int a,b=0,c=0,d=1;
    while(cin>>a){

这样读入a,你可以打印下数据,肯定不是你要的输入


by dami826 @ 2022-12-29 16:02:37

666


by dami826 @ 2022-12-29 16:02:59

好吧


| 下一页