目录
2020-12-30
一、Java
一、public class main{}
public 公共类,即大家都可以访问的类。
二、public static void main(String[] args)
java程序的入口地址。
public:表示程序在任何场合够可以被引用。
static:静态的,不依赖类的对象。
void main():不需要返回值。
三、System.out.println(a+" "+b+" "+c);
输出。
四、if(a==3)与if(a=3)
if(a==3)是a等于3
if(a=3)是把a赋值3
五、System.out.println(a+" "+b+" "+c+" ")//按行输出,每行两个变量之间是空格。
注意输出语法格式。a、b、c是变量,“ ”里面是内容。
2021.1.4
二、C语言
1、#include<stdio.h>
编译预处理命令,程序编译之前要处理的内容。
2、printf("%d %d %d\n",a,b,c); 输出语句。//按行输出,每行两个变量之间是空格。
三、C++
1、C with STL
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
}
2、数学问题:反转数字
int
re(
int
x){
int
s=0;
while
(x!=0){
int
r=x%10;
x=x/10;
s=r+s*10;
}
return
s;
}
2021-01-05
1、数学问题:与7相关:返回-1是与7无关,返回0是与7相关。
int seven(int x){
if(x%7==0)
return 0;
else{
while(x!=0){
if(x%10==7){
return 0;
}
x=x/10;
}
return -1;
}
}
2语法
while(scanf("%d",&n)!=EOF){
}
printf("%d\n",sum);
2021年1月6日
一、换个说法写等式
scanf("%d",&n);
if(x+y+z==100 && float(5*3*x+3*3*y+z)<=3*n)//把1/3转换为3*n;
printf("x=%d,y=%d,z=%d\n",x,y,z);//注意输出语句的语法;
}
return 0;
}
二、火鸡问题
关于书写习惯,常量用X,Y,变量用x,y。
scanf("%d%d%d%d",&N,&X,&Y,&Z);//输入语句的语法,注意scanf的“%d”没有任何标点。
for(a=9;a>=1;a--){//从大到小更方便;
for(b=9;b>=0;b--){
if((a*10000+X*1000+Y*100+Z*10+b)%N==0){
printf("%d %d %ld\n",a,b,(a*10000+X*1000+Y*100+Z*10+b)/N);
flag=1;
break;}//break是跳出一层循环。
}
if(flag==1)
break;//第二层循环也要跳出
}
if(flag==0)//注意边界值
printf("0\n");
return 0;
}
2021-01-07
一、判断是否是闰年
int IsLeapYear(int year){
if((year%400==0) || (year%4==0 && year%100 !=0))
return 1;
else
return 0;
}
二、预处理
int datatab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
三、计算
while(scanf("%d%d%d",&year,&month,&day)!=EOF){
int sum=0;;
int i=IsLeapYear(year);
for(int j=1;j<=month;j++){
sum=sum+datatab[i][j-1];
}
sum=sum+day;
printf("%d\n",sum);
}
四、自己写的乱乱的
int main(){
int year,month,day,n;
while( scanf("%d%d",&year,&n ) != EOF){
int i= IsLeapYear(year);
int j, sum=0,month=0,day=0;
while(sum<n){
sum=sum+data[i][j];
j++;
}
month=j-1;
day=n-(sum-data[i][j-1]);
printf("%04d-%02d-%02d\n",year,month,day);
}
return 0;
}
2021-1-10
#include<iostream>
#include<cstdio>
using namespace std;
int data[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,28,31,30,31,30,31,31,30,31,30,31}
};
int IsLeapYear(int year){
if((year%400==0) || (year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int YearDays(int year){
if(IsLeapYear(year)==1)
return 366;
else
return 365;
}
int main(){
int m;
scanf("%d",&m);
while(m--){//输出m行个结果
int year=0,month=0,day=0,n;
scanf("%d%d%d%d",&year,&month,&day,&n);
int i= IsLeapYear(year);
int sum=0;
for(int j=0;j<month;j++){
sum=sum+data[i][j];
}
sum=sum+day+n;//输出当前日期的天数
while(sum>YearDays(year)){
year++;//确定年
sum=sum-YearDays(year);
}
month=0;
int row=IsLeapYear(year);
while(sum>data[row][month]){
sum=sum-data[row][month];
month++;//确定月
}
day=sum;//确定日
printf("%04d-%02d-%02d\n",year,month,day);
}
return 0;
}
2021-01-11
日期差值
#include<iostream>
#include<cstdio>
using namespace std;
int data[2][13]={//预处理
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int IsLeapYear(int year){//判断是否是闰年
if((year%400==0) ||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int yearDays(int y){//计算一年的天数是365还是366
if(IsLeapYear(y)==1)
return 366;
else
return 365;
}
int days(int year,int month,int day){
int sum=0;//计算当前日子是今年的多少天
int i=IsLeapYear(year);
for(int j=0;j<month;j++){
sum=sum+data[i][j];
}
sum=sum+day;
return sum;
}
int main(){
int d1,d2;
int year1,month1,day1;
int year2,month2,day2;
int result=0;
while( scanf("%d%d",&d1,&d2)!=EOF){
if(d1>d2){//总是让d2大于d1
int temp=d1;
d1=d2;
d2=temp;
}
year1=d1/10000;month1=((d1%10000)/100);day1=(d1%100);
year2=d2/10000;month2=((d2%10000)/100);day2=(d2%100);
if(year1==year2){
result=days(year2,month2,day2)-days(year1,month1,day1)+1;
}
else if(year2>year1){
result=days(year2,month2,day2)-days(year1,month1,day1)+1;
for(int y=year1;y<year2;y++){
result=result+yearDays(y);//这里有一个循环
}
}
printf("%d\n",result);
}
}
2021-01-17
#include<iostream>
#include<cstdio>
#include<cstring>//字符串
using namespace std;
int data[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int IsLeapYear(int year){
if((year%400==0)||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int daysOfYear(int year){
if(IsLeapYear(year)==1)
return 366;
else
return 365;
}
int days(int year,int month,int day){
int sum=0;
for(int i=1;i<year;i++){
sum=sum+daysOfYear(i);
}
int row=IsLeapYear(year);
for(int j=0;j<month;j++){
sum=sum+data[row][j];
}
sum=sum+day;
return sum;
}
char week_name[7][20]={
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"
};
char month_name[13][20]={
"","January","February","March","April","May","June","July","August",
"September","October","November","December"
};
int main(){
int year,month,day;
char m[20];
while(scanf("%d%s%d",&day,&m,&year)!=EOF){
for(month=0;month<=13;month++){
if(strcmp(m,month_name[month])==0) break; //strcmp(p, p1) 比较字符串
}
int n=days(year,month,day);
int w=n%7;
printf("%s\n",week_name[w]); //
}
return 0;
}
2021-1-17
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int keytab[26]={
1,2,3,1,2,3,
1,2,3,1,2,3,1,2,3,
1,2,3,4,1,2,3,1,2,3,4};
int main(){
char s[100];
scanf("%s",&s);
int sum=0;
for(int i=0;i<strlen(s);i++){
sum=sum+keytab[s[i]-'a'];//按键时间//利用与‘a’的差值
}
for(int i=1;i<strlen(s);i++){
if(s[i]-s[i-1]==(keytab[s[i]-'a']-keytab[s[i-1]-'a'])){//判断是否是同一个按键上的数字
sum=sum+2;//间隔时间
}
}
printf("%d\n",sum);
}
1-17打印问题
#include<iostream>
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
char s[100];
while(scanf("%s",&s)!=EOF){
int i,n1=0;
int N=strlen(s);
for(i=1;i<N;i++){
if(i<=(N+2-2*i)&&i>n1){
n1=i;
}
}
int n2=N+2-2*n1;
int j=N;int k;
for(i=0,j=N-1;j-i+1>n2;i++,j--){
printf("%c",s[i]);
for(k=0;k<n2-2;k++){
printf(" ");
}
printf("%c\n",s[j]);
}
for(;i<=j;i++){
printf("%c",s[i]);
}
printf("\n");
}
return 0;
}
--2021 01 18
#include<algorithm>
int main(){
int m;
while(scanf("%d",&m)!=EOF){
int a[m];
for(int i=0;i<m;i++){
scanf("%d",&a[i]);
}
sort(a,a+m);//C++内部基于快速排序的sort()函数,默认升序排序
for(int j=0;j<m;j++){
printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}
01-18
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct Student{
int num;
int grade;
};
bool Compare(Student x,Student y){
if(x.grade==y.grade)
return x.num<y.num;
else{
return x.grade<y.grade;
}
}
int main(){
int n;
scanf("%d",&n);
Student student[n];
for(int i=0;i<n;i++){
scanf("%d%d",&student[i].num,&student[i].grade);
}
sort(student,student+n,Compare);
for(int j=0;j<n;j++){
printf("%d %d\n",student[j].num,student[j].grade);
}
return 0;
}
01-18
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct Student{
string name;
int grade;
int order;
};
bool compare0(Student x,Student y){//降序
if(x.grade==y.grade)
return x.order<y.order;
else
return x.grade>y.grade;
}
bool compare1(Student x,Student y){//升序
if(x.grade==y.grade)
return x.order<y.order;
else
return x.grade<y.grade;
}
int main(){
int n;
int flag;
while(scanf("%d%d",&n,&flag)!=EOF){
Student student[n];
for(int i=0;i<n;i++){
//scanf("%s%d",&student[i].name,&student->grade);
cin>>student[i].name>>student[i].grade;
student[i].order=i;
}
if(flag==0){
sort(student,student+n,compare0);
}
else {
sort(student,student+n,compare1);
}
for(int j=0;j<n;j++){
//printf("%s %d\n",student[j].name,student[j]->grade);
cout<<student[j].name<<" "<<student[j].grade<<endl;//字符串输入输出解题技巧,不能用//的,用C++格式。
}
}
return 0;
}
2021-1-19
while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7]>>a[8]>>a[9]){
}
2021-1-22
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int M=100;
int a[M];
//二分法查找
bool BinarySearch(int n,int target){
int left=0;
int right=n-1;
while(left<=right){
int middle=(left+right)/2;
if(target<a[middle]){
right=middle-1;
}
else if(target>a[middle]){
left=middle+1;
}
else {
return true;
}
}
return false;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n);//先排序,再查找
int m;
scanf("%d",&m);
int t;
for(int j=0;j<m;j++){
scanf("%d",&t);
if(BinarySearch(n, t)){
printf("YES\n");
}
else {
printf("NO\n");
}
}
}
return 0;
}
2021-01-23
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct Arr{
int a,b;
};
bool compare(Arr x,Arr y){
if(x.a==y.a){
return x.b<y.b;
}
else{
return x.a<y.a;
}
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
Arr s[n];
for(int i=0;i<n;i++){
scanf("%d%d",&s[i].a,&s[i].b);
}
sort(s,s+n,compare);
printf("%d %d\n",s[0].a,s[0].b);
}
return 0;
}
2021-1-25
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
//数字当做字符串处理;
int main(){
string str1,str2;
while(cin>>str1>>str2){
int a=0;
for(int i=0;i<str1.size();i++){
for(int j=0;j<str2.size();j++){
a=a+(str1[i]-'0')*(str2[j]-'0');//str[i]-'0' 就是数字字符的ascii码转换成数值.比如'9'=57 因为数字的ascii码是连续的所以'9'-'0'=57-48=9
}
}
printf("%d\n",a);
}
return 0;
}
2021-1-26
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string str;
while(getline(cin,str)){//cin>>str 空格跳出
for(int i=0;i<str.size();i++){
if(str[i]=='z'||str[i]=='Z'){
str[i]=str[i]-'25';//ASCII码怎么算
}
else if((str[i]>='A'&&str[i]<='Y')||(str[i]>='a'&&str[i]<='y') ) //'Z'表示ASCII码
str[i]=str[i]+1;//不是'1'
}
//a-z:97-122,A-Z:65-90,0-9:48-57。
cout<<str<<endl;
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string str;
while(getline(cin,str)){
if(str=="ENDOFINPUT"){
break;
}
getline(cin,str);
for(int i=0;i<str.size();i++){
if(str[i]>='A'&&str[i]<='Z'){
str[i]='A'+(str[i]-5-'A'+26)%26;//核心
}
}
cout<<str<<endl;
getline(cin,str);
}
return 0;
}
2021-02-27
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int num[500];
string str1,str2;
while(getline(cin,str1)){
if(str1=="#"){
break;
}
getline(cin,str2);
memset(num,0,sizeof(num));//初始化数组。sizeof() 是一个判断数据类型或者表达式长度的运算符
for(int i=0;i<str2.size();i++){
num[str2[i]]++;
}
for(int i=0;i<str1.size();i++){
printf("%c %d\n",str1[i],num[str1[i]]);
}//ASCII码的值对应下标
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int num[500];
string str;
memset(num,0,sizeof(num));
while(getline(cin,str)){
for(int i=0;i<str.size();i++){
if(str[i]<='Z'&&str[i]>='A')
num[str[i]]++;
}
for(int i=65;i<=90;i++){//A-Z 65-90;
printf("%c:%d\n",i,num[i]);
}
return 0;
}
return 0;
}
01-28
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
string str;
while(getline(cin,str)){
if(str[0]>='a' &&str[0]<='z'){
str[0]=str[0]-32;
}
for(int i=0;i<str.size();i++){
if((str[i-1]==' '||str[i-1]=='\t'||str[i-1]=='\r'||str[i-1]=='\n')&&str[i]>='a'&&str[i]<='z'){
str[i]=str[i]-32;
}
}
cout<<str<<endl;
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>//排序
#include<cstring>
using namespace std;
int main(){
string str;
while(getline(cin,str)){
string a[str.size()];//数组存储
for(int i=0;i<str.size();i++){
a[i]=str.substr(i,str.size()-i);//i开始截取几位
}
sort(a,a+str.size());//排序
for(int i=0;i<str.size();i++){
cout<<a[i]<<endl;
}
}
return 0;
}
2021-01-31
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
vector<int> numE;
vector<int> numG;
int sum(int x){
int sum=0;
for(int i=1;i<x;i++){
if(x%i==0){
sum=sum+i;
}
}
return sum;
}
int main(){
for(int i=2;i<=60;i++){
if(i==sum(i)){
numE.push_back(i);
}
else if(i<sum(i)){
numG.push_back(i);
}
}
printf("E:");
for(int i=0;i<numE.size();i++){
printf(" %d",numE[i]);
}
// printf("\n");
printf(" G:");
for(int i=0;i<numG.size();i++){
printf(" %d",numG[i]);
}
printf("\n");
return 0;
}
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
stack<long long> s;
int main(){
int n;
while(scanf("%d",&n)!=EOF){
while(n--){
long long num;
scanf("%11d",&num);
s.push(num);
}
while(!s.empty()){
printf("%d ",s.top());
s.pop();
}
}
return 0;
}
2021-2-1
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int main(){//进制转化
unsigned int n;
while(scanf("%d",&n)!=EOF){
scanf("%d",&n);
vector<int> b;
while(n!=0){
b.push_back(n%2);
n=n/2;
}
for(int i=b.size()-1;i>=0;i--){
printf("%d",b[i]);
}
printf("\n");
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
char IntToChar(int x){
if(x<10){
return x+'0';
}
else{
return x-10+'a';
}
}
int CharToInt(char c){
if(c>='0'&&c<='9'){
return c-'0';
}
else{
return c-'A'+10;
}
}
int main(){
int m,n;
scanf("%d%d",&m,&n);
string str;
cin>>str;
long long number;
for(int i=0;i<str.size();i++){
number=number*m;
number=number+CharToInt(str[i]);
}
vector<char>answer;
while(number!=0){
answer.push_back(IntToChar(number%n));
number=number/n;
}
for(int i=answer.size()-1;i>=0;i--){
printf("%c",answer[i]);
}
printf("\n");
return 0;
}
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int charToInt(char x){
if(x<='9')return x-'0';
else return x-'A'+10;
}
char intToChar(int x){
if(x<=9)return x+'0';
else return x-10+'A';
}
string divide(int x,string a,int y){
string res;
while(a.size()!=0){
int remainder=0;
for(int i=0;i<a.size();i++){ // a/y一次
int num=remainder*x+charToInt(a[i]);
a[i]=intToChar(num/y);
remainder=num%y;
}
res+=(intToChar(remainder)); // res加上最后一位的余数
int pos=0;
while(a[pos]=='0')pos++;//因为字符串除法有前导0存在的可能,所以把‘0’去掉
a=a.substr(pos);
}
reverse(res.begin(),res.end()); //因为是相反的,随意最后进行反向。
return res;
}
int main(){
int x,y;string a;
while(cin>>x>>a>>y){
for(int i=0;i<a.size();i++){
if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-'a'+'A';
}
cout<<divide(x,a,y)<<endl;
}
return 0;
}
2021-2-2
#include<iostream>
#include<cstdio>
using namespace std;
int s(int a,int b){
if(b==0){
return a;
}
else{
return s(b,a%b);
}
}
int main(){
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
printf("%d\n",s(a,b));
}
return 0;
}
2021-2-3
#include<cstdio>
#include<cstdio>
using namespace std;
int s(int a,int b){
if(b==0){
return a;
}
else{
return s(b,a%b);
}
}
int main(){
int n;
int count=0;
while(scanf("%d",&n)!=EOF){
int num[n];
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(s(num[i],num[j])==1){//两个数的最大公约数是1,真分数
count++;
}
}
}
printf("%d\n",count);
}
return 0;
}
2021-2-4
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int judge(int x){
if(x<2){
return 0;
}
int b=sqrt(x);
for(int i=2;i<=b;i++){
if(x%i==0){
return 0;
}
}
return 1;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
if(judge(n)==1){
printf("yes\n");
}
else if(judge(n)==0){
printf("no\n");
}
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
vector<int> klist;
vector<int> primelist;
int judge(int x){
if(x<=1){
return 0;
}
int n=sqrt(x);
for(int i=2;i<=n;i++){
if(x%i==0){
return 0;
}
}
return 1;
}
int main(){
int k;
while(cin>>k){
klist.push_back(k);
}
sort(klist.begin(),klist.end());
int n=klist[klist.size()-1];
for(int i=2;primelist.size()<=n;i++){//
if(judge(i)==1){
primelist.push_back(i);
}
}
for(int j=0;j<klist.size();j++){
printf("%d\n",primelist[klist[j]-1]);
}
return 0;
}
2021-2-6矩阵乘法
#include<iostream>
#include<cstdio>
using namespace std;
struct Matrix{
int matrix[3][3];
int row,col;
Matrix(int r,int c): row(r),col(c){} //构造函数
};
Matrix mutiply(Matrix x,Matrix y){
Matrix answer(x.row,y.col);
for(int i=0;i<answer.row;i++){
for(int j=0;j<answer.col;j++){
answer.matrix[i][j]=0;
for(int k=0;k<x.col;k++){
answer.matrix[i][j]+=x.matrix[i][k]*y.matrix[k][j];
}
}
}
return answer;
}
void printM(Matrix m){
for(int i=0;i<m.row;i++){
for(int j=0;j<m.col;j++){
printf("%d ",m.matrix[i][j]);
}
printf("\n");
}
return;
}
int main(){
Matrix x(2,3);
Matrix y(3,2);
for(int i=0;i<x.row;i++){
for(int j=0;j<x.col;j++){
scanf("%d",&x.matrix[i][j]);
}
}
for(int i=0;i<y.row;i++){
for(int j=0;j<y.col;j++){
scanf("%d",&y.matrix[i][j]);
}
}
Matrix answer =mutiply(x,y);
printM(answer);
return 0;
}
2021-2-7贪心策略
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a;
while(scanf("%d",&a)!=EOF){
int min;
int max;
if(a%2!=0){
min=0;
max=0;
}
else if(a%2==0){
min=a/4+(a%4)/2;
max=a/2;
}
printf("%d %d\n",min,max);
}
}
2021-2-8递归与分治
#include<iostream>
#include<cstdio>
using namespace std;
long long s(int x){
if(x==0){
return 1;//递归出口
}
else{
return s(x-1)*x;
}
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
printf("%lld\n",s(n));
}
return 0;
}
#include<iostream>
#include<cstdio>
using namespace std;
int s(int x){
if(x==0||x==1){
return x;
}
else{
return s(x-1)+s(x-2);
}
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
printf("%d\n",s(n));
}
}
2021-02-09
#include<iostream>
#include<cstdio>
using namespace std;
//BFS求最优解,queue
//DFS求解存在,递归,栈
int a[40];
int vis[40],res,n;
void dfs(int now,int j){
for(int i=j;i<n;i++){
int cal=now+a[i];
if(cal>40){
dfs(now,i+1);
}
else if(cal<40){
dfs(cal,i+1);
}
else{
res++;
}
}
}
int main(){
while(cin>>n){
res=0;
for(int i=0;i<n;i++){
cin>>a[i];
vis[i]=0;
}
dfs(0,0);
printf("%d\n",res);
}
return 0;
}
2021-2-18
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct TreeNode{
char data;
TreeNode* leftChild;
TreeNode* rightChild;
TreeNode(char c):data(c),leftChild(NULL),rightChild(NULL){}
};
TreeNode* build(string str1,string str2){
if(str1.size()==0){
return NULL;
}
char c=str1[0];
TreeNode* root =new TreeNode(c);
int position =str2.find(c);
root->leftChild=build(str1.substr(1,position),str2.substr(0,position));
root->rightChild=build(str1.substr(position+1),str2.substr(position+1));
return root;
}
void PostOrder(TreeNode* root){//后序
if(root==NULL){
return;
}
PostOrder(root->leftChild);
PostOrder(root->rightChild);
printf("%c",root->data);
return;
}
int main(){
string str1,str2;
while(cin>>str1>>str2){
TreeNode* root =build(str1,str2);
PostOrder(root);
printf("\n");
}
return 0;
}
2021-3-10
cpu周期:频率的倒数。
cpu流水线:将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令的并行处理,以加速程序运行。
向量指令:操作对象是一组数,向量操作由指令确定向量操作数地址,并直接或间接地指定增量。