ArrayList x = new ArrayList();
ArrayList y = new ArrayList();
x.Add("a");
x.Add("b");
x.Add("c");
x.Add("d");
...
y.Add("1");
y.Add("2");
...
两动态数组 X 和Y 数组内元素个数不定,有可能B大于A的个数 求一算法,用数组B的所有元素依次和A
组合如 x[0]+y[0] , x[1]+y[1],x[2]+y[2],x[3]+y[0],x[4]+y[1],x[5]+y[2] 如果X里的个数正好是Y个数的整数倍,就组合倍数次,如果非整数倍,剩余元素都和Y[0]组合。
ArrayList y = new ArrayList();
x.Add("a");
x.Add("b");
x.Add("c");
x.Add("d");
...
y.Add("1");
y.Add("2");
...
两动态数组 X 和Y 数组内元素个数不定,有可能B大于A的个数 求一算法,用数组B的所有元素依次和A
组合如 x[0]+y[0] , x[1]+y[1],x[2]+y[2],x[3]+y[0],x[4]+y[1],x[5]+y[2] 如果X里的个数正好是Y个数的整数倍,就组合倍数次,如果非整数倍,剩余元素都和Y[0]组合。
for(int iCount=0;iCount<x.Count;i++)
{
x[iCount]+=y[icount%yF];
}
ArrayList y = new ArrayList();
ArrayList z = new ArrayList(); if (y.Count == 0) throw (new Exception("Null Y!"));
int cnt = (x.Count % y.Count == 0) ? x.Count : (x.Count / y.Count * y.Count); for (int i = 0; i < cnt; i++)
{
z.Add(x[i] + y[i % y.Count]);
} for (int j = cnt; j < x.Count; j++)
{
z.Add(x[j] + y[0]);
}
int xalen = isint * y.lenth;
for(int i = 0;i < xalen; i++)
{
x[i] = x[i] + y[i % y.length];
}
for(int i = xalen; i< x.length;i++)
{
x[i] = x[i] + y[0];
}
x[0]+y[0],x[1]+y[1],x[2]+y[2],x[3]+y[0],x[4]+y[1],x[5]+y[2]
------------------------------------------------------------
没看出什么规律,你把规律说一下好吗?
x[0]+y[0],x[1]+y[1],x[2]+y[2],x[3]+y[0],x[4]+y[1],x[5]+y[2]
------------------------------------------------------------
没看出什么规律,你把规律说一下好吗?
用数组X的所有元素依次和Y组合
static void Main(string[] args)
{
ArrayList X = new ArrayList();
for( int i=0;i<5;i++)
{
X.Add(i);
}
ArrayList Y = new ArrayList();
for( int i=10;i<19;i++)
{
Y.Add(i);
}
Compages(X,Y);
Console.ReadLine();
}
private static void Compages(ICollection X, ICollection Y)
{
if(X.Count==0 || Y.Count==0)
return;
Queue QX = new Queue(X);
Queue QY = new Queue(Y);
int CountX = QX.Count;
int CountY = QY.Count;
int Count = CountX > CountY ?CountX:CountY;
for(int Index=0;Index<Count;Index++)
{
object x = QX.Dequeue();
object y = QY.Dequeue();
Console.WriteLine( "X={0} , Y={1}" ,x,y);
QX.Enqueue(x);
QY.Enqueue(y);
}
}