这样写为啥会显示答案错误啊
c语言吧
全部回复
仅看楼主
level 6
救救孩子吧,试了好几遍了[泪][泪]
2022年09月25日 02点09分 1
level 7
你这程序没问题吧,复制运行过了
2022年09月25日 02点09分 3
提交显示答案错误[泪]
2022年09月25日 02点09分
level 1
没问题的
2022年09月25日 02点09分 4
可是提交显示答案错误啊[呵呵]
2022年09月25日 02点09分
level 6
我的想法很简单,直接用(k*k-k)%pow(10, n)判断,n是k的位数,比如5,就算(5*5-5)%pow(10, 1),等于零就成立
2022年09月25日 03点09分 5
level 6
#include <stdio.h>#
include
int jud(int i){
if (i < 0)
return -1;
else if (i == 0)
return 0;
else if (i < 10)
return 1;
else
return jud(i / 10) + 1;
}
int main(){
int a, b, i;
scanf("%d %d", &a, &b);
if (b < a){
printf("illegal input");
return 1;
}
for (i = a; i <= b; i++){
int n = jud(i);
if ((i * i - i) % (int)(pow(10, n)) == 0)
printf("%d\n", i);
}
return 0;
}
2022年09月25日 03点09分 6
level 6
也可以直接使用itoa()将数转换为字符串直接在末尾比对
2022年09月25日 03点09分 7
itoa不是标准库函数,建议使用sprintf
2022年09月25日 05点09分
@stanchcorder6 都差不多,有转换字符串这个操作就行
2022年09月25日 11点09分
@◎御坂雷丘◎ 但是itoa不在标准库中,是微软自己的扩展。大多数OJ系统是不认的
2022年09月25日 11点09分
level 14
考虑不全,没有考虑到输入一开始就大于10的情况
2022年09月25日 05点09分 8
我靠有道理,,那如果想改应该咋改[花心][花心]
2022年09月25日 05点09分
我靠有道理,,那如果想改应该咋改[花心][花心]
2022年09月25日 05点09分
@幸好我会魔法 再原来的基础上,根据输入计算k的初值,现在k是写死的10
2022年09月25日 05点09分
@🍀草酱🍀 okk[笑眼]爱你
2022年09月25日 05点09分
1