注册 登录
编程论坛 C++教室

[求助]这段程序没有运行结果。。。

华龙 发布于 2007-04-03 17:39, 392 次点击

求整数n到m之间的不含'4'和"62"的整数,即不能将4,41,14,24,62,621,1625等计算在内

#include <iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int k=m-n+1;
for (int i=n;i<=m;i++)
{
while (i)
{
if (i%10==4)
{
k--;
break;
}
else if (i%10==2&&(i/10)%10==6)
{
k--;
break;
}
i/=10;
}
}

cout<<k<<endl;
return 0;
}

运行时,如输入1 100,就没反应了。我试图修改程序,可还是没办法,以自己的思路代入数据计算,也觉得是对的,恳请朋友赐教。

2 回复
#2
linlin2007-04-03 20:38


for (int i=n;i<=m;i++)
{
while (i)
{
if (i%10==4)
{
k--;
break;
}
else if (i%10==2&&(i/10)%10==6)
{
k--;
break;
}
i/=10;//i值被你改变了,使for中的循环变量不是自增的
}
}
改一下就可以了

for (int i=n;i<=m;i++)
{
int j = i;
while (j)
{
if (j%10==4)
{
k--;
break;
}
else if (j%10==2&&(j/10)%10==6)
{
k--;
break;
}
j/=10;
}
}

#3
华龙2007-04-03 21:52
谢谢楼上了,我懂了,谢谢!
1