深北莫7月29日晚上进制
2024-07-30 15:33:43
发布于:广东
7月29日晚上进制
数位取出
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;cin>>n>>a>>b;
int c=pow(a,b);
int r=(n/c)%a;
cout<<r;
return 0;
}
数位修改
/*#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;cin>>n>>a>>b;
int c=pow(a,b);
int r=(n/c)%a;
cout<<r;
return 0;
}*/
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b,x;cin>>n>>a>>b>>x;//n=63425 a=10 b=2 x=7
int c=pow(a,b);//c=100
int r=(n/c)%a;//r=4
int R=r*c;//R=400
int d=x*c-R;//d=700-400=300
cout<<n+d;//631425+300
return 0;
}
转换十进制
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k;
string s;cin>>n>>k>>s;
reverse(s.begin(),s.end());
int q=1,ans=0;
for(int i=0;i<s.size();i++){
if(isdigit(s[i])){
ans+=q*(s[i]-'0');
}
else {
ans+=q*(s[i]-55);
}
q*=k;
}
cout<<ans;
return 0;
}
Middle of the Contest
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d;
scanf("%d:%d\n%d:%d",&a,&b,&c,&d);
int x=60*a+b;
int y=60*c+d;
int z=(x+y)/2;
int i=z/60,j=z%60;
if(i<10)cout<<0;
cout<<i<<":";
if(j<10)cout<<0;
cout<<j;
return 0;
}
Base K
#include<bits/stdc++.h>
using namespace std;
int x, a[105],a0[105];
string s,s2;
int c(char c) {
if('0'<=c&&c<='9') return c-'0';
return c-'A'+10;
}
int main() {
cin>>x>>s>>s2;
long long l=s.size(),l2=s2.size();
for(int i=l-1;i>=0;i--)
a[l-1-i]=c(s[i]);
for(int i=l2-1;i>=0;i--)
a0[l2-1-i]=c(s2[i]);
long long a1=0,w=1,a2=0;
for(int i=0;i<l+1;i++){
a1+=w*a[i];
w*=x;
}
w=1;
for(int i=0;i<l2+1;i++){
a2+=w*a0[i];
w*=x;
}
//cout<<a1<<" "<<a2<<"\n";
cout<<a1*a2;
return 0;
}
Powers Of Two
#include<bits/stdc++.h>
using namespace std;
const int N=(int)2e5+55;
long long a[N];
vector<int>v;
int main() {
int n,k;
cin>>n>>k;
int sum1=0;
for(int i=0; i<31; i++) {
if(n&(1<<i)) {
sum1++;
v.push_back((1<<i));
}
}
if(k>=sum1&&k<=n) {
cout<<"YES"<<"\n";
int i=0;
while(v.size()<k) {
if(v[i]>1) {
v[i]=v[i]/2;
v.push_back(v[i]);
} else i++;
}
sort(v.begin(),v.end());
for(int i=0; i<v.size(); i++) {
printf(" %d",v[i]);
}
} else cout<<"NO";
return 0;
}
Many Balls
#include<bits/stdc++.h>
using namespace std;
int a[120];
#define int long long
signed main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
int cnt=0;
while(n){
a[cnt++]=n%2;
n/=2;
}
for(int i=cnt-1;i>=0;i--){
if(i==cnt-1)
{
printf("A");
continue;
}
if(a[i]==1)
{
printf("BA");
}
else
{
printf("B");
}
}
}
Even Digits
#include<bits/stdc++.h>
using namespace std;
long long n;
int ans[100001],cnt;
int b[5]={0,2,4,6,8};
int main(){
scanf("%lld",&n);
if(n==1){
printf("0");
return 0;
}
n--;
while(n){
ans[++cnt]=b[n%5];
n/=5;
}
for(int i=cnt;i>=1;i--){
printf("%lld",ans[i]);
}
return 0;
}
Bitmask
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
ll n,ans[61],a=1,r;
int main(){
cin>>s>>n;
for(ll i=s.size()-1;i>=0;i--,a*=2){
if(s[i]=='?')ans[i]=a;
if(s[i]=='1')r+=a;
}
for(ll i=0;i<s.size();i++) if(r+ans[i]<=n)r+=ans[i];
if(r>n)cout<<-1;
else cout<<r;
}
Tavas and SaDDas
#include<bits/stdc++.h>
using namespace std;
int main(){
int n=0;
string s;
cin>>s;
for(int i=0;i<s.length();i++)
{
if(s[i]=='7') n+=pow(2,s.length()-i-1);
}
cout<<n+pow(2,s.length())-1<<endl;
return 0;
}
这里空空如也
有帮助,赞一个