- 注册时间
- 2010-4-21
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 7300
- 在线时间
- 小时
|
发表于 2010-10-9 20:45:49
|
显示全部楼层
"十一"在家十天,在家干农活挺累的,今天刚到校,家里没网.发现9楼的Java代码有误(尽管是小错)。用C又重写了,第一个还是“构造型”的,另一个是“暴搜型”的:-
- #include <stdio.h>
- int main()
- {
- int count=0;
- for (int i=1;i<9;i++)
- {
- for (int j=1;j<9;j++)
- {
- int a,a1=i,a2=j,t=10*a2+a1;
- while (a1+a2<10)
- {
- a=a1+a2;
- a1=a2;
- a2=a;
-
- int k=1;
- for (int u=t;u;u/=10)
- {
- k*=10;
- }
- t+=k*a;
- printf("%d",t);
- printf(++count%10? "\t":"\n");
- }
- }
- }
- printf("\n\ncount : %d\n",count);
- return 0;
- }
复制代码 ----------------------------------------------------------------
- #include <stdio.h>
- #include <math.h>
- #define MAXDIG 6
- int main(int argc, char *argv[])
- {
- int count=0;
- for (int dig=3;dig<=MAXDIG;dig++)
- {
- for (int n=(int)pow(10.0,dig-1);n<(int)pow(10.0,dig);n++)
- {
- int a[10],i=0,m;
- for (int t=n;t!=0;t/=10)
- {
- m=t%10;
- if (m==0) break; //continue;
- a[i++]=m;
- }
-
- bool flag=true;
- for ( i=0;i<=dig-3;i++)
- {
- if (a[i+2]!=a[i+1]+a[i])
- {
- flag=false;
- break;
- }
- }
- if (flag)
- {
- printf("%d",n);
- printf(++count%10?"\t":"\n");
- }
- }
- }
- printf("\nCount : %d\n",count);
- return 0;
- }
复制代码 |
|