|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我太蒻了,红题都过不了
网址:https://vjudge.net/problem/UVA-455
代码:- #include <stdio.h>
- #include <string.h>
- #define maxn (160 + 5)
- bool equal(const char *s, int c) {
- int n = strlen(s);
- for(int i=0; i<n; ++i) {
- if(s[i]!=s[(i+c)%n]) return false;
- }
- return true;
- }
- int main()
- {
- int T;
- scanf("%d", &T);
- while(T--) {
- char s[maxn];
- int i;
- scanf("%s", s);
- for(i=1; i<=strlen(s); ++i) {
- if(strlen(s)%i) continue;
- if(equal(s, i)) {
- printf("%d", i);
- if(T>1) printf("\n\n");
- break;
- }
- }
- }
- return 0;
- }
复制代码 WA
@tommyyu
过了。做了一点微调,确实是格式问题。在t=0时只输出1个换行,其他时候输出2个。
附ac代码(微调)
- #include <stdio.h>
- #include <string.h>
- #define maxn (160 + 5)
- bool equal(const char *s, int c) {
- int n = strlen(s);
- for(int i=0; i<n; ++i) {
- if(s[i]!=s[(i+c)%n]) return false;
- }
- return true;
- }
- int main()
- {
- int T;
- scanf("%d", &T);
- while(T--) {
- char s[maxn];
- int i;
- scanf("%s", s);
- for(i=1; i<=strlen(s); ++i) {
- if(strlen(s)%i) continue;
- if(equal(s, i)) {
- printf("%d", i);
- if(T>0) printf("\n\n");
- else printf("\n");
- break;
- }
- }
- }
- return 0;
- }
复制代码
|
|