倚天照海花无数,流水高山心自知。
不对不对。的确就是存的时候不对。
a[i]=a[i-1]+i的位数
这个的时候就不对了。10是当成1个数用的。不信斑竹你自己数一下。
第二个
#include<iostream.h>
#include<stdio.h>
int main()
{
int i;
long s,n;
while(EOF!=(scanf("%ld",&n))&&n!=0)
{
if(n%2==0||n<2)//是偶数或小于2就直接输出找不到.
{
printf("2^? mod %ld = 1\n",n);
}
else
{
s=1;i=0;
while(1)//这里主要是找规律,想了很久的,不过以前做的,代几个数看看吧.
{
if(s<n)
{
s=s*2;
i++;
}
else
{
s=s-n;
}
if(s==1)
break;
}
printf("2^%d mod %ld = 1\n",i,n);
}
}
return(0);
}