求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6
3 2 5 7
Sample Output
12
70
#include<stdio.h>
#include<string.h>
int main()
{
int n,left,right;
char num[99];
scanf("%d", &n);
while (n--)
{
int count = 0;
int sum = 0;
scanf("%s", &num);
right = strlen(num)-1;
left = 0;
while (left <= right)
{
if (num[left] == num[right])
count++;
right--;
left++;
}
if (strlen(num) % 2 != 0)
{
if (count == strlen(num) / 2 + 1)
printf("yes\n");
else
printf("no\n");
}
else
{
if(count==strlen(num)/2)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
按照题目的意思做即可
这里我运用了类似之前做二分查找时所用的方法
这里附上答案的两种做法
#include <stdio.h>
#include <string.h>
int main(void)
{
int n, len, i;
char s[1024];
scanf("%d%*c", &n);
while (n--)
{
gets(s);
len = strlen(s);
for (i = 0; i <= len / 2; i++)
{
if (s[i] != s[len - 1 - i])
break;
}
puts(s[i] != s[len - 1 - i] ? "no" : "yes");
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main(void)
{
int n;
char s[1024];
char t[1024];
scanf("%d%*c", &n);
while (n--)
{
gets(s);
strcpy(t, s);
strrev(s);
puts(strcmp(t, s) ? "no" : "yes");
}
return 0;
}