
如何编写程序“输出1~999中能被3整除,而且至少有一位数字是5的所有数字”?
3个回答
展开全部
#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;
}
展开全部
建议:
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,那样可以极大的提高程序运行的效率……
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,那样可以极大的提高程序运行的效率……
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |