15蓝桥杯省模拟赛 11-最小数位和 填空题

65 阅读1分钟

最小数位和【省模拟赛】 - 蓝桥云课 (lanqiao.cn)

image.png

思想

题目给了  88列个二进制数据,要求  求`最小和`

我们把88列的数据输入,然后用位运算把每一位拆分出来,再相加得到 `相加和`。

再设一个`最小和``最小和`要小于题目给的数据的值。

然后拿`相加和``最小和`  作对比。  如果`相加和`更小,那么`相加和`就变为新的`最小和`

code

#include<iostream>    
  using namespace std;    
  int main()    
  {    
       //根据题目给的数据,我们可以设一个最小和,只要这个最小和比题目给的数据的值都小就行,可以设100000    
      int  nowmin=0,nowminsum=100000,x,t,sum;    
      
       t=x;
      for(int i=0;i<=8;i++)    
      {    
          for(int j=1;j<=8;j++)    
          {  
                  cin>>x;    
              sum+=t%10;    
                  t/=10;    
   
      //如果sum比nomimsum小    
         if(sum<nowminsum)    
         {         
            nowminsum=sum;//,那么sum就是最新的nowminsum    
              
            //把下一个数给nowmin    
            nowmin=x;    
         }    
                
          }
          
      }   
         cout<<nowmin<<endl;
      return 0;
  }

怎么把数据输入

把题目给的这8*8个数据写入一个文件,文件命名为1:

image.png

然后我们把 1输入重定向到 test.c里面,test.c就会把这个数据拿来用,然后就可以求出最小和: image.png

把这个答案填上去就可以了。