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

 我来答
Ying19910828
2011-04-17
知道答主
回答量:14
采纳率:0%
帮助的人:7.2万
展开全部

#include <iostream>

using namespace std;

bool fun(int x);

int main()

{

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

 {

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

   cout<<i;

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

 }

  cout<<endl;

 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;

}

yipiantianYS
2011-04-07 · TA获得超过347个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:113万
展开全部
建议:
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,那样可以极大的提高程序运行的效率……
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vet75vkg
2011-04-08 · TA获得超过496个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:336万
展开全部
clude<stdio.h>
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式