如何编写程序“输出1~999中能被3整除,而且至少有一位数字是5的所有数字”?

2024-11-26 15:50:51
推荐回答(3个)
回答1:

#include 

using namespace std;

bool fun(int x);

int main()

{

 for (int i=1;i<1000;i++)

 {

  if (i%3==0 && fun(i))

   cout<

  cout.width(5);//控制宽度

 }

  cout<

 return 0;

}

bool fun(int x)//至少有一个数字能被5整除

{

 int sum=0;

 for (x;x>0;)

 {

  if (x%5==0)//从右到左若有一个数字被5整除sum即为非0

   sum++;

  x/=10;

 }

 if (sum==0)

  return false;

 else

  return true;

}

回答2:

建议:
1,你先写一个函数用于判断能否被3整除
2,接着编写一个函数用于判断是否含有数字5,
具体细节如下:假设数为x,先将x对10取余,可得到个位数字(假设为m),用m对5整除,如果不成功,再将x对100取余得到余数(假设为n),要知道n是个十位数,它的个位数一定是m,所以用n-m对50整除,如果还不成功,在对1000取余,依次类推,再按照之前的方法依次判断,无论多大的数都可以判断出来的
提示:最好先确定x的范围,1--9之间,还是10--99之间,还是100---999之间,然后再判断是否含有数字5,那样可以极大的提高程序运行的效率……

回答3:

clude
int main()
{
int i;
for(i=1;i<=999;i++){
if(i%3==0&&((i%10==5)||(i/10)%10==5||(i/100)%10==5)) printf("%d\t",i);
}
}
i%10==5)||(i/10)%10==5||(i/100)%10==5分别判断个位十位百位是否5