初学算法之---pta fun with numbers

简介: 初学算法之---pta fun with numbers
  #include<stdio.h>
  #include<math.h>
  #include<string.h>
int main(){
  char a[21];
  char b[21]={0};
  scanf("%s",&a);
    int len=strlen(a);
  /*
  for(int i=0;i<len;i++){
    array[i]
  }
  */
  //统计数字出现次数 下标就是数字 
  int num1[10] = {0};
  for(int i=0;i<len;i++){
    int j=a[i]-'0';
    num1[j]++;
  }
  int index=len;
  for(int j=len;j>0;j--){ 
    int nums=(a[index-1]-'0')*2;
    if(nums>=10){//产生进位 
      b[j]+=nums%10 ;
      b[j-1]+=nums/10;
    }else{
      b[j]+=nums;
    }
    index--;
  }
  //计算b数组的数字种类
   int num2[10] = {0};
  for(int i=0;i<len;i++){
    //printf("%d ",b[i+1]);
    int j=b[i+1];
    num2[j]++;
  }
  /*如果发生多出一位则no*/
  if(b[0]!=0){
    printf("No\n");
    for(int j=0;j<=len;j++){
      printf("%d",b[j]);
    }
    return 0;
  }
  //比较ab 是否数字种类不一致
  int round;
  if(len>9){
    round=10;
  }
  for(int i=0;i<round;i++){
    if(num1[i]==0&&num2[i]!=0){
      printf("No\n");
      for(int j=1;j<=len;j++){
      printf("%d",b[j]);
    }
    return 0; 
  }
  if(num1[i]!=0&&num2[i]==0){
      printf("No\n");
      for(int j=1;j<=len;j++){
      printf("%d",b[j]);
    }
    return 0; 
  }
} 
  //满足条件yes 
  printf("Yes\n");
  for(int j=1;j<=len;j++){
      printf("%d",b[j]);
  }
}
相关文章
【基础算法】[PTA]-找出不是两个数组共有的元素
【基础算法】[PTA]-找出不是两个数组共有的元素
|
算法 Python
算法创作|PTA-求满足条件的斐波那契数
算法创作|PTA-求满足条件的斐波那契数
348 0
初学算法之---pta吉老师回归(简单题)
初学算法之---pta吉老师回归(简单题)
初学算法之---pta 福到了
初学算法之---pta 福到了
初学算法之二叉树---求树的高度 pta
初学算法之二叉树---求树的高度 pta
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
496 0
|
5月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
325 2
|
6月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
302 3
|
5月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
256 8
|
5月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
289 8

热门文章

最新文章