答案:31 题解:通过思考10的产生是由2和5共同作用的,要知道有几个0,每出现一个10,就应从乘数中可以提出一个2、一个5。所以我们把每个数的都分解成乘积的形式 ,统计出 2和 5的数量,取他们的最小值。
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int sum2=0,sum5=0;
for(int i=0;i<100;i++)
{
int x;
cin>>x;
int s=x;
while(s&&s%2==0)
{
s/=2;
sum2++;
}
while(s&&s%5==0)
{
s/=5;
sum5++;
}
}
cout<<min(sum2,sum5)<<endl;
}
考点:搜索
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e7+5;
char a[1005][1005];
int book[1005][1005];
int nx[4][2]={{0,1},{0,-1},{1,0},{-1,0}},f;
void dfs(int x,int y)
{
book[x][y]=1;
if(a[x][y-1]=='#'&&a[x][y+1]=='#'&&a[x+1][y]=='#'&&a[x-1][y]=='#')
f=1;
for(int i=0;i<4;i++)
{
int tx=x+nx[i][0];
int ty=y+nx[i][1];
if(book[tx][ty]==0&&a[tx][ty]=='#')
dfs(tx,ty);
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
int sum=0;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(a[i][j]=='#'&&book[i][j]==0)
{
f=0;
dfs(i,j);
if(!f)
sum++;
}
}
cout<<sum<<endl;
}
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e7+5;
string a,b;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
bitset<8>t;
for(int i=0;i<10;i++)
{
for(int j=0;j<16;j++)
{
int x,y;
cin>>x>>y;
t=x;
a=t.to_string();
t=y;
b=t.to_string();
a+=b;
for(int k=0;k<a.length();k++)
{
if(a[k]=='1')
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
}
long long sum=pow(9,9);
cout<<sum<<endl;
}
答案:125,差值+1
|