The common solution is to call a static method belonging to the type that can calculate the value of the parameter to be passed to the base constructor.
For example:
public B(int x, int y)
    : base(x, y, CalculateZ(x, y))
{
}
// You can make this parameterless if it does not depend on X and Y
private static int CalculateZ(int x, int y)
{
   //Calculate it here.
    int exampleZ = x + y;
    return exampleZ;
}
Do note that CalculateZ cannot be an instance method, because the this reference is not available in constructor initializers.
From the language-specification 10.11.1 Constructor initializers:
  An instance constructor initializer
  cannot access the instance being
  created. Therefore it is a
  compile-time error to reference this
  in an argument expression of the
  constructor initializer, as is it a
  compile-time error for an argument
  expression to reference any instance
  member through a simple-name.
EDIT: Changed 'instance' to 'static' in the description.
     
    
B:A? If so, how can A have more data than B? Also, A doesn't seem to have such a constructor...