#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; }
建议:
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
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