今天开始试着自己找一些试题做,遇到这样一道题:
编程实现输入一个整数,判断其能否被3、5、7整除,并输出以下信息之一:
(1)能同时被3、5、7整除;
(2)能被其中两个数(要指出哪两个)整除;
(3)能被其中一个数(要指出哪一个)整除;
(4)不能被3、5、7任一个整除。
自己写了一段程序,感觉非常的繁琐,于是在网上搜索一些大家编写的简单而又明了的代码如下
#include <iostream.h>
void main()
{
int a;
cout <<"please input a number:/n";
cin >>a;
int c1 = a%3 ==0;
int c2 = a%5 ==0;
int c3 = a%7 ==0;
switch((c1<<2)+(c2<<1)+c3) //可以改成switch((c1*4)+(c2*2)+c3)
{
case 0: cout <<"不能被3,5,7整除./n"; break;
case 1: cout <<"只能被7整除./n"; break;
case 2: cout <<"只能被5整除./n"; break;
case 3: cout <<"可以被5,7整除./n"; break;
case 4: cout <<"只能被3整除./n"; break;
case 5: cout <<"可以被3,7整除./n"; break;
case 6: cout <<"可以被3,5整除./n"; break;
case 7: cout <<"可以被3,5,7整除./n"; break;
}
}
#include <iostream.h>
void main()
{
int x;
short int n=0;
cout<<"请输入一个整数:"<<endl;
cin>>x;
if(x%3!=0&&x%5!=0&&x%7!=0)
{
cout<<"不能被这三个整数中任意一个整除";
return;
}
else
{
cout<<x<<"能被";
if(x%3==0)
{cout<<"3 ";
n++;
}
if(x%5==0)
{cout<<"5 ";
n++;
}
if(x%7==0)
{cout<<"7";
n++;
}
}
cout<<"这"<<n<<"个数整除"<<endl;
}
#include <iostream.h>
void main()
{
loop:
int i;
cin>>i;
(i%3&&i%5&&i%7)?cout<<"不能3.5.7中任意一个整除":i%3?(i%5?cout<<i<<"能被7整除"
:(i%7?cout<<i<<"能被5整除":cout<<i<<"能被5.7整除"))
:(i%5?(i%7?cout<<i<<"能被3整除":cout<<i<<"能被3.7整除")
:(i%7?cout<<i<<"能被3.5整除":cout<<i<<"能被3.5.7整除"));
goto loop;
}
收集到如上三种可用方法,经测试均可用
一下是自己的程序
#include <iostream.h>
void main()
{
int x;
cout<<"请输入一个整数:"<<endl;
cin>>x;
int a,b,c;
a=x%3;
b=x%5;
c=x%7;
if (a==0)
{
if(b==0&&c==0)
cout<<"该整数能被3、5、7整除"<<endl;
else if (b==0&&c!=0)
cout<<"该整数能被3、5整除"<<endl;
else if (b!=0&&c==0)
cout<<"该整数能被3、7整除"<<endl;
else if (b!=0&&c!=0)
cout<<"该整数只能被3整除"<<endl;
}
if (a!=0)
{
if(b==0&&c==0)
cout<<"该整数能被5、7整除"<<endl;
else if (b==0&&c!=0)
cout<<"该整数只能被5整除"<<endl;
else if (b!=0&&c==0)
cout<<"该整数只能被7整除"<<endl;
else if (b!=0&&c!=0)
cout<<"该整数不能被3、5、7任何一个整除"<<endl;
}
}