最小数位和【省模拟赛】 - 蓝桥云课 (lanqiao.cn)
思想
题目给了 8行8列个二进制数据,要求 求`最小和`
我们把8行8列的数据输入,然后用位运算把每一位拆分出来,再相加得到 `相加和`。
再设一个`最小和`,`最小和`要小于题目给的数据的值。
然后拿`相加和` 与 `最小和` 作对比。 如果`相加和`更小,那么`相加和`就变为新的`最小和`。
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:
然后我们把 1输入重定向到 test.c里面,test.c就会把这个数据拿来用,然后就可以求出最小和:
把这个答案填上去就可以了。