基础练习 十六进制转八进制
#include<iostream>
using namespace std;
string cal(string input);
int main
{
int n;
cin>>n;
string input;
string output[10];
int j=0;
for(int i=0;i<n;i++)
{
cin>>input;
output[j++]=cal(input);
}
for(int i=0;i<n;i++)
cout<<output[i]<<endl;
return 0;
}
string cal(string input)
{//16转8
string tow,eight;
//16先转2
for(int i=0;i<input.length();i++)
{
switch(input[i])
{
case '0':tow+="0000";break;
case '1':tow+="0001";break;
case '2':tow+="0010";break;
case '3':tow+="0011";break;
case '4':tow+="0100";break;
case '5':tow+="0101";break;
case '6':tow+="0110";break;
case '7':tow+="0111";break;
case '8':tow+="1000";break;
case '9':tow+="1001";break;
case 'A':tow+="1010";break;
case 'B':tow+="1011";break;
case 'C':tow+="1100";break;
case 'D':tow+="1101";break;
case 'E':tow+="1110";break;
case 'F':tow+="1111";break;
default:break;
}
}
//2转8
if(tow.length()%3==1)
tow="00"+tow;
if(tow.length()%3==2)
tow="0"+tow;
for(int j=0; j<tow.length(); j+=3)
{
eight+=(tow[j]-'0')*4+(tow[j+1]-'0')*2+tow[j+2];
}
return eight;
}
基础练习 十六进制转十进制
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
string input;
cin >> input;
long long int sum=0;
int len=input.length();
for(int i=0;i<len;i++)
{
if(input[i]>='0'&&input[i]<='9')
sum+=(input[i]-'0')*pow(16,len-i-1);
else
sum+=(input[i]-'A'+10)*pow(16,len-i-1);
}
cout << sum << endl;
return 0;
}
基础练习 十进制转十六进制
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long int n;
cin >> n;
//10转16直接除余即可
char str[10], a[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
int i = 0;
if (n == 0)
cout << "0" << endl;
else
{
while (n)
{
str[i++] = a[n % 16];
n /= 16;
}
}
reverse(str, str + i);
for (int j =0;j<i;j++)
cout << str[j];
return 0;
}
试题 基础练习 特殊回文数
#include<iostream>
using namespace std;
bool f1(int n)
{//判断是否是回文
char a[10];
int i=0;
while(n)
{
a[i++]=n%10;
n/=10;
}
for(int j=0;j<i/2;j++)
{
if(a[j]!=a[i-j-1])
return false;
}
return true;
}
int f2(int n)
{//计算各位之和
int sum=0;
while(n)
{
sum+=n%10;
n/=10;
}
return sum;
}
int main()
{
int n;
cin>>n;
for(int i=10000;i<1000000;i++)
{
if(f1(i) && f2(i)==n)
cout<<i<<endl;
}
return 0;
}
试题 基础练习 回文数
#include<iostream>
using namespace std;
bool f1(int n)
{//判断是否是回文
char a[10];
int i=0;
while(n)
{
a[i++]=n%10;
n/=10;
}
for(int j=0;j<i/2;j++)
{
if(a[j]!=a[i-j-1])
return false;
}
return true;
}
int main()
{
for(int i=1000;i<10000;i++)
{
if(f1(i))
cout<<i<<endl;
}
return 0;
}
试题 基础练习 特殊的数字
#include<iostream>
using namespace std;
int f(int n)
{//求这个数的各位立方和
int a=n%10;
n/=10;
int b=n%10;
n/=10;
int c=n%10;
int sum=a*a*a+b*b*b+c*c*c;
return sum;
}
int main()
{
for(int i=100;i<1000;i++)
{
if(i==f(i))
cout<<i<<endl;
}
return 0;
}
试题 基础练习 杨辉三角形
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[34][34];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==0||j==0||i==j) a[i][j]=1;
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
试题 基础练习 查找整数
#include<iostream>
using namespace std;
int main()
{
int n;
int t;
int a;
int num[10000]={0};
cin>>n;
for(int i=0;i<n;i++)
{
cin>>t;
if(num[t]==0) num[t]=i+1;
}
cin>>a;
if(num[a]==0) cout<<"-1"<<endl;
else cout<<num[a]<<endl;
return 0;
}
试题 基础练习 数列特征
#include<iostream>
using namespace std;
int main()
{
int n;
int num;
cin>>n;
int max=-1,min=999,sum=0;
for(int i=0;i<n;i++)
{
cin>>num;
if(num>max) max=num;
if(num<min) min=num;
sum+=num;
}
cout<<max<<endl<<min<<endl<<sum<<endl;
return 0;
}
试题 基础练习 数列特征
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(i<j)
{
char t1=('A'+j-i);
cout<<t1;
}
else if(i==j) cout<<"A";
else
{
char t2=('A'+i-j);
cout<<t2;
}
}
cout<<endl;
}
return 0;
}
试题 基础练习 01字串
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
void f(int i)
{
int a[5] = { 0 };
int k = 0;
while (i)
{
a[k++] = i % 2;
i /= 2;
}
reverse(a, a + 5);
for (int j = 0; j < 5; j++)
{
cout << a[j];
}
}
int main()
{
int i = 0;
for (i = 0; i <32; i++)
{
f(i);
cout << endl;
}
return 0;
}
试题 基础练习 闰年判断
#include<iostream>
using namespace std;
int main()
{
int y;
cin>>y;
if((y%4==0&&y%100!=0)||(y%400==0))
cout<<"yes";
else cout<<"no";
return 0;
}
试题 基础练习 圆的面积.
#include<iostream>
using namespace std;
int main()
{
int r;
double pi=3.14159265358979323;
cin>>r;
printf("%.7f",pi*r*r);
return 0;
}
试题 基础练习 序列求和
#include<iostream>
using namespace std;
int main()
{
long long n;
cin>>n;
long long sum=((1+n)*n)/2;
cout<<sum<<endl;
return 0;
}