第一天 多项式输出

每一项和前一项的区别  an*x^n  an-1*x^n-1 

分三个模块  n~2 正常输出   1 输出1个x  0 没有 x
系数  有负的一定输出-  正数系数 要注意是不是第一项 第一项没有+   

cin>>n; 输入的项数系数 一定是固定的 能+个
int a; 
for(int i=n;i>=0;i--){ //次幂 也是项数 
	cin>>a;
	//结合当前a的情况 和 i的情况 
	if(a<0) cout<<"-"; //一定有-
	if(a>0 && i!=n) cout<<"+";//不是第一项就要输出+ 
	if(abs(a)>1 || i==0 && abs(a)>0 ) cout<<abs(a);
	if(i>1&&a!=0) cout<<"x^"<<i; //如果不是第一项并且不为 0 就有x次幂输出 
	if(i==1&&a!=0) cout<<"x";//a 不为0的倒数第二项 	
}

第二题 

A~Z 
A~Z 

对应可以相同 , 但只能一对一 ,26个没找齐, 

第一步 破译  有可能成功
             失败  
             
             
              
ABC
CBA
AAAAD 

1 A~Z必须有相应的秘密  否则 F
2 如果同一个秘密 重复了  F 
3 一个秘密不能给多个祖母使用  F

char char 有没有被改过  

int c[27],
bool a[27] , b[27] ;  //没被用过 也没用过  就可以存到C里构建对应关系  

x y z  x加密的  y原信息 z要翻译  

遍历x 
for(0 x.size()){
	//密字是否用过 和 原信息中的字母有没有相应的米子  
	//满足两边都没用过 存起来 ->c
	cnt++; 
}


伪代码 

string a m y 
bool check[]; //记录有没有26个都找了 
cin>>m>>y>>a; //密文  原文 要翻译的
falg = 1;
for(0~m.size()-1;i++){
	for(0~m.size()-1;i++){
	  //密文和原文要一一对应 	
	 if( (m[i]==m[j]&&y[i]!=y[j])
	    || (m[i] ! = m[j] && y[i]==y[j])  
	  ) flag = 0;//不行了  
	  
	} 
	check[y[i]-'A'] = 1;
} 
for(0~25){//统计找没找够  
	if(check[i] == 0) flag=0;
}

if(falg = 1){
	for(i 0~a.size){
		for(j 0~m.size){
			if(a[i]==m[j]){
				cout y[j];
				break;
			}
		}
	}
} else
 cout  输出F

3 条评论

  • @ 2024-8-8 16:57:30
    #include<bits/stdc++.h>
    #pragma GCC optimize(3)
    using namespace std;
    char v[27]={'A','B','C','D','E','F','G','H','I','J','K','L',
    'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
    int a_[100],b_[100];
    int r[100];
    int main(){
    	freopen("spy.in","r",stdin);
    	freopen("spy.out","w",stdout);
    	int flag=0,panduan=0;
    	string a,b,c,da;
    	cin>>a>>b>>c;
    	long long alen=a.size(),blen=b.size(),clen=c.size();
    	for(int i=0;i<alen;i++){
    		for(int j=0;j<26;j++){
    			if(a[i]==v[j]) a_[j]++;
    		}
    	}
    	for(int i=0;i<26;i++) if(a_[i]==0){flag=1;}
    	for(int i=0;i<blen;i++){
    		for(int j=0;j<26;j++){
    			if(b[i]==v[j]) b_[j]++;
    		}
    	}
    	for(int i=0;i<26;i++) if(b_[i]==0){flag=1;}
    	for(int i=0;i<alen;i++){
    		for(int j=0;j<alen;j++){
    			if(a[i]!=a[j]&&b[i]==b[j]||a[i]==a[j]&&b[i]!=b[j]) flag=1;
    		}
    	}
    	for(int i=0;i<clen;i++){
    		int d=0;
    		string t;
    		for(int j=0;j<alen;j++){
    			if(c[i]==a[j]){
    				da+=b[j];
    				break;
    			}
    		}
    	}
    	if(flag==1) cout<<"Failed";
    	else cout<<da;
    	return 0;
    }
    • @ 2024-8-8 15:07:25
      #include<bits/stdc++.h>
      using namespace std;
      int n,a;
      int main(){
      	freopen("poly.in","r",stdin);
      	freopen("poly.out","w",stdout);
      	cin>>n;
      	int f=n;
      	for(int i=n;i>=0;i--){
      		cin>>a;
      		if(a<0) cout<<"-";
      		if(a>0 && i!=n) cout<<"+";
      		if(abs(a)>1 || i==0 && abs(a)>0) cout<<abs(a);
      		if(i>1 && a!=0) cout<<"x^"<<i;
      		if(i==1 && a!=0) cout<<"x";
      	}
      	return 0;
      }
      
      🤡 4
      👀 2
      • @ 2024-8-8 15:05:46

        本人已 WA AC 请放心参考!

        #include <bits/stdc++.h>
        using namespace std;
        
        int main(){
        	freopen("poly.in", "r", stdin);
        	freopen("poly.out", "w", stdout);
        	int n;cin >> n;
        	for(int i=n;i>=0;i--){
        		int a;cin >> a;
        		if(a<0) cout << '-';
        		if(a>0&&i!=n) cout << '+';
        		if(abs(a)>1||i==0&&abs(a)>0) cout << abs(a);
        		if(i>1&&a!=0) cout << "x^" << i;
        		if(i==1&&a!=0) cout << "x";
        	}
        	return 0;
        }
        
        🤡 6
        🤣 3
        👀 1
        🕊️ 1
        • 1