20200821 滴滴秋招笔试
1.给定n,输出满足abc+acc=n时的abc和acc,1<=a<=9,0<=b<9,0<=c<=9。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 int countt=0; 8 vector<int> res1,res2; 9 cin>>n; 10 for(int a=1;a<=9;a++){ 11 for(int b=0;b<=9;b++){ 12 for(int c=0;c<=9;c++){ 13 if(a!=b&&b!=c){ 14 if((a*100+b*10+c+a*100+c*10+c)==n){ 15 countt++; 16 res1.push_back(a*100+b*10+c); 17 res2.push_back(a*100+c*10+c); 18 } 19 } 20 } 21 } 22 } 23 cout<<countt<<endl; 24 for(int i=0;i<res1.size();i++){ 25 cout<<res1[i]<<" "<<res2[i]<<endl; 26 } 27 return 0; 28 }
2.螺旋倒序填入斐波那契数列。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 long long tmpfib[200]; 7 int index=0; 8 long long fib[20][20]; 9 int n; 10 11 tmpfib[0]=1; 12 tmpfib[1]=1; 13 for(int i=2;i<82;i++){ 14 tmpfib[i]=tmpfib[i-1]+tmpfib[i-2]; 15 } 16 17 /* 18 for(int i=0;i<82;i++){ 19 cout<<tmpfib[i]<<" "; 20 } 21 */ 22 23 cin>>n; 24 index=n*n-1; 25 for(int i=0;i<n/2;i++){ 26 for(int j=i;j<n-i;j++){ 27 fib[i][j]=tmpfib[index--]; 28 } 29 if(index<0) break; 30 for(int j=i+1;j<n-1-i;j++){ 31 fib[j][n-i-1]=tmpfib[index--]; 32 } 33 if(index<0) break; 34 for(int j=n-i-1;j>=i;j--){ 35 fib[n-i-1][j]=tmpfib[index--]; 36 } 37 if(index<0) break; 38 for(int j=n-2-i;j>=i+1;j--){ 39 fib[j][i]=tmpfib[index--]; 40 } 41 if(index<0) break; 42 } 43 if(n%2==1){ 44 fib[n/2][n/2]=1; 45 } 46 for(int i=0;i<n;i++){ 47 for(int j=0;j<n;j++){ 48 if(j==(n-1)){ 49 cout<<fib[i][j]<<endl; 50 }else{ 51 cout<<fib[i][j]<<" "; 52 } 53 } 54 } 55 return 0; 56 }
唉...