m-n之间分别用数组显示能被2整除和不能被2整除的数,用二维数组怎么实现?

racewind 2006-01-23 12:05:16
class C//将m--n之间能被2整除的和不能被2整除的分成2个数组显示
{
int a[],b[];
C(int m,int n)
{
a = new int[n+1];
b = new int[n+1];
for(int i=m;i<=n;i++)
{
if(i%2==0)
{
a[i] = i;
System.out.println(m+"---"+n+" m%2==0 "+a[i]);
}
else
{
b[i] = i;
System.out.println(m+"---"+n+" m%2!=0 "+b[i]);
}
}
}
public static void main(String args[])
{
new C(3,99);
}
}
...全文
284 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
racewind 2006-01-23
  • 打赏
  • 举报
回复
class D
{
int inter[][];
D(int m,int n)
{
inter = new int[n+1][n+1];
for(int i=m;i<=n;i++)
{
for(int j=m;j<=n;j++)
{
if(i%2==0 && j%2==0)
{
inter[i][j]=j;
System.out.println("inter["+i+"]"+"["+j+"] = "+inter[i][j]+" %2==0");
}
else
{
inter[i][j]=j;
System.out.println("inter["+i+"]"+"["+j+"] = "+inter[i][j]+" %2!=0");
}
}
}
}
public static void main(String args[])
{
new D(0,3);
}
}
应该就是这样了
acd123456 2006-01-23
  • 打赏
  • 举报
回复
这样是不是效率更高
而且避免了空间浪费
也解决了用a数组装基数,b数组装偶数
不过我没有测试
思路就是这样



class C//将m--n之间能被2整除的和不能被2整除的分成2个数组显示
{
int a[],b[];//a为基数,b为偶数
C(int m,int n)
{
int k = ( m - n) % 2;
int q = m % 2;
a = new int[(m - n ) / 2 + k * q ]; //“k * q”代表如果有基数个数,且以基数开始的话则a的元素比b多1
b = new int[(m - n ) / 2 + k * (q - 1)];//同上,代表偶数多一
for(int i = 0; i<= m - n - 1; i = i + 2)
{
if( q==0 )//基数开始
{
b[i/2] = m + i;
a[i/2] = m + i + 1;
}
else//偶数开始
{
a[i/2] = m + i;
b[i/2] = m + i + 1;
}
}
if ( k == 1) //基数个元素时写入最后一项
{
if( q == 0 ) b(m - n -1) = m;
else a(m - n -1) = m;
}
}
public static void main(String args[])
{
new C(3,99);
}
}
racewind 2006-01-23
  • 打赏
  • 举报
回复
我的代码(2层的)也没有错啊!
racewind 2006-01-23
  • 打赏
  • 举报
回复
yuzl32(Hello!有酒醉

呵呵,怎么把我上面的code有copy了一遍啊,呵呵!
java仍下一年半了,哎,寒假没什么事情弄出来玩玩,呵呵!忘的是一干二净三没剩啊!
yuzl32 2006-01-23
  • 打赏
  • 举报
回复
: )

class C//将m--n之间能被2整除的和不能被2整除的分成2个数组显示
{
int[][] a ;
C(int m,int n)
{
int odd = 0;
int even = 0;
a = new int[2][(n - m) / 2 + 1];
for(int i=m;i<=n;i++)
{
if(i%2==0)
{
a[0][odd ++] = i;
}
else
{
a[1][even ++] = i;
}
}
}

public void display()
{
for (int i = 0; i < a.length; i ++)
{
for (int j = 0; j <a[i].length; j ++)
System.out.print(a[i][j] + " " );
System.out.println();
}
}
public static void main(String args[])
{
new C(3,99).display();
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧