作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题描述可参见Here 。我的程序正在生成与示例测试用例匹配的输出,但是当遇到大整数时,程序崩溃了,我无法找出原因。当用户提供的数据类似于 a:=252509054433933447
b:=760713016476190629
时,程序要么停止响应,要么收到 SIGABRT 错误或处理时间1 个输入文件超出最大分配时间。我的代码有什么问题吗?有人能建议一个更好的算法来做到这一点吗?请帮我找出错误。
#include<stdio.h>
#include<string.h>
int main()
{
long long int a,b,input,len,len1,len2;
char dem[1000];
char temp[100000];
scanf("%s",dem);
scanf("%u",&input);
len=strlen(dem);
for(unsigned int i=0;i<input;i++)
{
scanf("\n%lld %lld",&a,&b);
if(b>len)
{
len1=b/len;
for(unsigned int j=1;j<=((len1+1));j++)
{
strcat(temp,dem);
}
}
else
{
if(dem[a-1]==dem[b-1])
{
printf("\nYes");
}
else
{
printf("\nNo");
}
}
len2=strlen(temp);
if(len2!=0)
{
if(temp[a-1]==temp[b-1])
{
printf("\nYes");
}
else
{
printf("\nNo");
}
}
}
}
最佳答案
哇,这是一个厌恶女性的问题描述。太遗憾了。
您的问题在这里:
for(unsigned int j=1;j<=((len1+1));j++)
{
strcat(temp,dem);
}
您不应该将给定字符串与其自身连接起来,这将不适合给定限制的内存。相反,如果您确实进行了串联,请尝试使用模运算来查找某个位置上的字符。
例如,如果您有字符串 abc
,我问,通过无限次重复 abc
形成的字符串中位置 10 的字符是什么,您'd do(从零开始的索引):
char_at_position = str[10 % len(abc)] = str[10 mod 3] = str[1] = b
0123456789 10
abcabcabca b c
*
关于c - HackerEarth女朋友的需求挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542919/
我是一名优秀的程序员,十分优秀!