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;
}
我已经编译通过了,但不知版主所说的“效率”从哪里能看到阿?
即“Time limit: 1 Seconds Memory limit: 32768K
Total Submit: 2329 Accepted Submit: 763 ”
从哪里能看到阿?
[此贴子已经被作者于2006-12-4 10:15:08编辑过]
----------------解决方案--------------------------------------------------------
to:我不是郭靖版主:麻烦你讲解一下您的第二题的编程思路吧,我能够看懂,但却不懂深层次的原理,麻烦您能讲一下。谢谢!
----------------解决方案--------------------------------------------------------
to:我不是郭靖版主:麻烦你讲解一下您的第二题的编程思路吧,我能够看懂,但却不懂深层次的原理,麻烦您能讲一下。谢谢!
----------------解决方案--------------------------------------------------------
to:我不是郭靖版主:麻烦你讲解一下您的第二题的编程思路吧,我能够看懂,但却不懂深层次的原理,麻烦您能讲一下。谢谢!
只要理解(a*b)%c==(a%c*b)%c.就可以了.
----------------解决方案--------------------------------------------------------
我很笨啊,第二题题目是啥意思啊,
----------------解决方案--------------------------------------------------------
我不是郭靖版主的第二题的程序主要应用了,余数被除尽时即找到结果。所以每次都是取余后的循环。
----------------解决方案--------------------------------------------------------
我很笨啊,第二题题目是啥意思啊,
/*给出一个不能被2和5整除的数,问这个数可以被最少的几个1组成的数整除*/
比如是3.当然是111(最少要3个1组成的数)可以整除3了.
再比如7.那就输出111111.(因为111111是由1组成数中可以整除7的最小数).
关于这个题目,想到一个理解方法就是小学的除法运算.
大家都知道,当不够位除时,后总补0除,我们这里当然也可以补1除了.这样得出的结果不就是由1组成的数了.
----------------解决方案--------------------------------------------------------
第二题提交之后出现了这个是什么意思啊?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;
}
----------------解决方案--------------------------------------------------------