标题:问题
取消只看楼主
yinlijun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-4-29
 问题点数:0 回复次数:4 
问题
身份证号码之谜

这是发生在外国警察局中的一个故事,已知某人身份证号码扣除第一个英文字母后是9位数字,现在有一个人的身份证的号码中,前1位可以被1的平方整除,前2位可以被2的平方整除,前3位可以被3的平方整除……以此类推至前9位可以被9的平方整除。你可以帮他们找出这个人的身份证号码吗?例:123456789中,前1位是1;前2位是12,可以被2的平方4整除。

main()

{

long i=0,j,a[10];

int g,k,l;

loop: i++;

{

j=100000000;

for(g=1;g<10;g++)

{

a[g]=i/j;

j=j/10;

}

for(k=1;k<10;k++)

{

l=k*k;

if(a[k]%l!=0)

goto loop;

}

printf(“the id is %ld”,i);

if(i<1000000000)

goto loop;

}

}

有人说是死循环,但是在哪里呀。多谢指教

[此贴子已经被作者于2004-05-08 15:34:21编辑过]

搜索更多相关主题的帖子: 身份证号码 平方 整除 数字 故事 
2004-04-29 09:18
yinlijun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-4-29
得分:0 

还是不明白,虽然说是用了goto 编程不好,但是没有发现问题亚]


2004-05-08 15:38
yinlijun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-4-29
得分:0 
请大家,提出高见亚十分感谢

2004-05-10 18:22
yinlijun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-4-29
得分:0 
以下是引用zff_ff在2004-05-14 15:10:07的发言:

我想问题应该出现在第一个goto上

if(a[k]%l!=0)

goto loop;

在if为真时程序跳回来进行第一个循环,里边的变量g,j,a[]进行重新赋值,但是结果和第一次是没有任何区别的,到goto时还是要回来,这样就造成了死循环

但我在跳回loop后i++,i增加了,a[]的值相应的改变了,也就是我在测算下一个i值是否成立条件


2004-05-15 09:10
yinlijun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-4-29
得分:0 

多谢大家了,快点告诉我


2004-05-17 19:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-960-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.493670 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved