unicorn斑竹的因为有格式问题,没有测试,但看整个程序来说,算法还是对的.
倚天照海花无数,流水高山心自知。
第二题的程序:
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
printf("please input a number:\n");
scanf("%d",&n);
if(n<0||n>10000)
printf("error number,please input new number\n");
else
{ while(n%2!=0||n%5!=0)
{
for(i=1;i<100;i++)
{
if((int)(pow(2.0,i)-1)%n==0)
{printf("%d\n",i);
break;
}
}
break;
}
}
return 0;
}
我已经编译通过了,但不知版主所说的“效率”从哪里能看到阿?
[此贴子已经被作者于2006-12-4 10:15:08编辑过]
第二题提交之后出现了这个是什么意思啊?SIGSEGV
#include <stdio.h>
#include <string.h>
#define N 100
#define M 100
int main(void)
{
char str1[N], str2[M];
int i, n = 0, step1 = 0, step2 = 0;
while(scanf("%s", str1) != EOF)
{
scanf("%s", str2);
for(i = 0;i < strlen(str2);i ++)
{
if(str1[step1] == str2[step2])
{
n ++;
step1 ++;
step2 ++;
}
else
{
step2 ++;
}
}
if(n == strlen(str1))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}