我在做一个编程问题,其中一个示例输出是64197148392731290.我的代码对于这个问题是正确的,因为它给了我其他测试用例(这些测试用例的输出是单个数字)的正确答案。C中的“无输出”结果?
我知道测试用例有64197148392731290作为输出的迭代次数太多。那么我该怎么做才能为那个测试用例获得正确的答案。
下面是代码:
#include<stdio.h>
#include<string.h>
int main() {
int test_case;long long int i, j, count, n, k, k1;
scanf("%d", &test_case);
while(test_case--) {
scanf("%lld%lld", &n, &k);
char a[n];
count=0;
k1=k;
scanf("%s", a);
while(k1--) {
strcat(a,a);
}
for(i=0;i<(n*k);i++) {
if(a[i]=='a') {
for(j=(i+1);j<(n*k);j++) {
if(a[j]=='b') {
count++;
}
}
}
}
printf("%lld\n", count);
}
return 0;
}
样品输入和输出:
输入:
3
4 2
abcb
7 1
aayzbaa
12 8
abzbabzbazab
输出:
6
2
64197148392731290
我的任务是统计数的子序列“ab” (不一定是连续的)在新字符串中。输入的第一行包含一个表示测试用例数量的整数T. T测试用例的描述如下。
每个测试用例的第一行包含两个整数N和K,分别表示初始字符串S的长度和重复次数。
第二行包含一个字符串S.其长度恰好为N,并且其每个字符都是小写英文字母。
到目前为止你做了什么?如果您有代码,请将其展示给我们,以便我们帮助您。学习[如何提出一个好问题。](https://stackoverflow.com/help/how-to-ask) –
你还没有告诉我们代码应该做什么!从例子中解决这个问题是可能的。但为什么我们应该努力工作 - 你不必! – Clifford
'char a [n];'是不够的。 'strcat(a,a);'是未定义的行为。 – BLUEPIXY