会java的帮帮我~~java编程:输出200到400间,能被3整除不能被7整除的数的个数

 我来答
强哥不秃头
2013-07-17 · TA获得超过177个赞
知道小有建树答主
回答量:350
采纳率:66%
帮助的人:183万
展开全部

楼上的算法简单明了,但是存在效率问题。

另一种算法(教算法的老师肯定会说这种算法不错,但是实际中基本没人这么写) : 

先算出3和7的积 即:能被三整除又能被7整除的数肯定是21(3*7)的倍数。

然后再从200到400之间找到第一个能被3整除的数,在找到最后一个能被3整除的数。两个数之差除以3.这个数是200到400中能被3整除的个数。

接下来用这个数除以刚才的两个数之差除以21

最后将这两个结果相减就行了。代码如下:

public class Example {

public static void main(String args[]){
//3与7互质,那么能被3整除,又能被7整除的肯定是两个数乘积的倍数。
//21
int product = 3*7;
int begin = 200;
int end =400;
//201
int first = begin + 3 - begin%3;
//398
int last = end - end%3 ;
//399÷3 - 201÷3 = (399-201)/3
int count_divisibility_3 = (last - first)/3;
//能被三整除,又能被7整除的数
int count_divisibility_product = (last - first)/product ;
//结果
int count_result = count_divisibility_3 - count_divisibility_product ;
System.out.println(count_result);

}
}
圣西罗的宅男
2013-07-10 · 超过38用户采纳过TA的回答
知道答主
回答量:134
采纳率:0%
帮助的人:80.4万
展开全部
public class TestSimple {
public static void main(String[] args) {
int i =200;
int j = 400;
int n =0;
for(;i<j;i++){
if(i%3==0&&i%7!=0){
n++;
}
}
System.out.println("200到400之间,能被3整除不能被7整除的数的个数为:"+n);
}
}
更多追问追答
追问
不对啊,大哥,那个n打印了好多次啊……
我说的是打印出一个……
追答
请仔细看看for循环到哪里结束,这个类你运行一下就知道了,只打印了一行。
200到400之间,能被3整除不能被7整除的数的个数为:57
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原姗塔凝海
2020-08-12 · TA获得超过1224个赞
知道小有建树答主
回答量:1202
采纳率:100%
帮助的人:5.1万
展开全部
public
class
TestSimple
{
public
static
void
main(String[]
args)
{
int
i
=200;
int
j
=
400;
int
n
=0;
for(;i<j;i++){
if(i%3==0&&i%7!=0){
n++;
}
}
System.out.println("200到400之间,能被3
整除
不能被7整除的数的个数为:"+n);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式