进度3.5/36
(以及为什么洛谷一天只能下一次数据 yue)
P1100
利用位运算即可。
#include<iostream>
using namespace std;
int main()
{
unsigned n;
cin>>n;
cout<<((n<<16)|(n>>16))<<'\n';
P1143
不知道该说什么(
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int dec(string ,int );
void trans(char *,int,int );
int n,m;
char aa[33]={};
string a;
cin>>n>>a>>m;
trans(aa,dec(a,n),m);
return 0;
}
int dec(string a,int n)// n to 10
{
int b=a.length(),sum=0;
for(int i=0;i<b;i++)
{
switch (a[i])
{
case '1':sum+=1*pow(n,b-i-1);break;
case '2':sum+=2*pow(n,b-i-1);break;
case '3':sum+=3*pow(n,b-i-1);break;
case '4':sum+=4*pow(n,b-i-1);break;
case '5':sum+=5*pow(n,b-i-1);break;
case '6':sum+=6*pow(n,b-i-1);break;
case '7':sum+=7*pow(n,b-i-1);break;
case '8':sum+=8*pow(n,b-i-1);break;
case '9':sum+=9*pow(n,b-i-1);break;
case 'A':sum+=10*pow(n,b-i-1);break;
case 'B':sum+=11*pow(n,b-i-1);break;
case 'C':sum+=12*pow(n,b-i-1);break;
case 'D':sum+=13*pow(n,b-i-1);break;
case 'E':sum+=14*pow(n,b-i-1);break;
case 'F':sum+=15*pow(n,b-i-1);break;
}
}
return sum;
}
void trans(char *p,int n,int m)
{
int i=0;
while(n!=0)
{
switch(n%m)
{
case 0:p[i++]='0';break;
case 1:p[i++]='1';break;
case 2:p[i++]='2';break;
case 3:p[i++]='3';break;
case 4:p[i++]='4';break;
case 5:p[i++]='5';break;
case 6:p[i++]='6';break;
case 7:p[i++]='7';break;
case 8:p[i++]='8';break;
case 9:p[i++]='9';break;
case 10:p[i++]='A';break;
case 11:p[i++]='B';break;
case 12:p[i++]='C';break;
case 13:p[i++]='D';break;
case 14:p[i++]='E';break;
case 15:p[i++]='F';break;
}
n/=m;
}
for(i-=1;i>=0;i--)
{
if(p[i]<=57)
cout<<int(p[i]-48);
else
cout<<p[i];
}
}
P1029
x无法整除y也得考虑
#include<bits/stdc++.h>
using namespace std;
int main()
{
int search(int ,int );
int x,y;
cin>>x>>y;//y=kx,找k的所有因数个数
cout<<search(x,y);
return 0;
}
int search(int x,int y)
{
int gcd(int ,int );
int num=0,k;
float k1=(y+.0)/x;
if(int(k1)==k1)
{
k=int(k1);
for(int j=1;j<=k;j++)
{
if(k%j==0)
{
if(gcd(j,k/j)==1)
num++;
}
}
}
return num;
}
int gcd(int m,int n)
{
if(m%n==0)
return n;
else
return gcd(n,m%n);
}
还在缓慢的敲
争取下周刷完一半及以上()