C++ 1016 部分A+B(15 分)

方法1:(自写)

思路  A,B视为string型,每一位与‘0’相减所得结果与DA、DB比较

#include<iostream>
#include<string.h>
using namespace  std;

int main()
{
  string A,B;
  int da,db,an,bn;
  int suma=0,sumb=0,ka=1,kb=1;
  cin>>A>>da>>B>>db;
  an=A.length();
  bn=B.length();
  for(int i=0;i<an;i++){
    if((A[i]-'0')==da){
      suma =suma+da*ka;
      ka=ka*10;
    }
  }
  
  for(int i=0;i<bn;i++){
    if((B[i]-'0')==db){
      sumb =sumb+db*kb;
      kb=kb*10;
    }
  }
  
  cout<<suma+sumb;
  
  
  
  return 0;
}

方法2:

思路:将A、B视为int型,从个位开始比较(A%10)

#include<iostream>


using namespace std;


int main()
{
/*输入*/
int A, DA, B, DB, PA = 0, PB = 0;
cin >> A >> DA >> B >> DB;


/*判断*/
int i, k = 0;
for (i = 0; A != 0 || B != 0; i++)
{
  if (A != 0) {
  /*给PA赋值*/
    if (A % 10 == DA)
    {
    A = A / 10;
    PA = PA * 10 + DA;
    }
    else
    A = A / 10;
  }
  
  
  if (B != 0) {
  /*给PB赋值*/
  if (B % 10 == DB)
  {
  B = B / 10;
  PB = PB * 10 + DB;
  }
  else
  B = B / 10;
  }
}


cout << PA + PB;


return  0;


}

猜你喜欢

转载自blog.csdn.net/qq_36122764/article/details/82113232