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 未必,可能 sqrt(b)
的结果变成了
难道洛谷没有这个 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
好吧