问题:
我希望1-50中的所有数字都不能被7整除,但它们中也没有7,比如17,27等等。下面的代码可以工作,但是(i-10)%7必须从i=6开始。现在它认为数字3不算,因为(3-10)=-7是0 mod 7。我如何在if语句中解决这个问题?
for(int i=1; i<=50;i++){
if(i%7!=0 && (i-10)%7!=0){
System.out.println(i);发布于 2015-07-16 13:05:31
你的第二个条件错了。27以7结尾,但(27-10)%7=0。
你只需要检查I% 10不是7。
if(i%7!=0 && i%10!=7)发布于 2015-07-16 13:08:56
这会起作用的
for(int i=1; i<=50;i++){
if(i==7 || i==3)
{
if(i==3)
System.out.println(i);
}
else if(i%7!=0 && (i%10)%7!=0){
System.out.println(i);}
}输出是.
1 2 3 4 5 6 8 9 11 13 15 16 18 19 22 24 25 26 31 32 33 34 38 39 41 43 44 45 46 48
更新
如果你想让你的If条件从i=6开始检查,那么你可以这样做.
for(int i=1; i<=50;i++){
if(i>=6 && i%7!=0 && (i%10)%7!=0)
System.out.println(i);
}但输出将改为.
6 8 9 11 12 13 16 16 18 19 24 24 26 29 31 32 33 34 36 38 41 43 44 44 45 46 48
发布于 2015-07-16 13:08:13
这应该能行。将其转换为字符串,只需检查它是否包含字符串"7“。
if(i % 7 != 0 && ((String)i).contains("7"))https://stackoverflow.com/questions/31454982
复制相似问题