LQB2013A04倒置的标签

 这个题,一开始犯了一个很幼稚的错误

贴贴代码

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <strings.h>
#include <queue>
#include <set>
#include <cstring>
#include<vector>
using namespace std;
int a[10]={1,2,5,6,8,9,0};//0~6
vector<int>  v1;
vector<int> v2;
int main(){
    int q;
    int b;
    for (int i = 0; i < 6; ++i) {
        for (int j = 0; j < 7; ++j) {
            for (int k = 0; k < 7; ++k) {
                for (int l = 0; l < 6; ++l) {
                    q=a[i]*1000+a[j]*100+a[k]*10+a[l]-a[l]*1000-a[k]*100-a[j]*10-a[i];
                    if(q<300 && q>200) {
                        cout<<a[i]<<a[j]<<a[k]<<a[l]<<" "<<q<<endl;
                        v1.push_back(q);
                    }

                }
            }
        }

    }
    cout<<"an";
    for (int i = 0; i < 6; ++i) {
        for (int j = 0; j < 7; ++j) {
            for (int k = 0; k < 7; ++k) {
                for (int l = 0; l < 6; ++l) {
                    b=a[i]*1000+a[j]*100+a[k]*10+a[l]-a[l]*1000-a[k]*100-a[j]*10-a[i];
                    if(b<900 && b>800){
                        cout<<a[i]<<a[j]<<a[k]<<a[l]<<" "<<b<<endl;
                        v2.push_back(b);
                    }


                }
            }
        }

    }
    vector<int>::iterator it;
    vector<int>::iterator m;
    for(it=v1.begin();it!=v1.end();it++)
        cout<<*it<<" ";
    cout<<endl;
    for ( m = v2.begin(); m != v2.end(); ++m)
        cout<<*m<<" ";


}

,,,,我忽略了有的数,倒过来就不是它了,,,比如6和9

就死在这里了呜呜呜

//这个题我一开始以为挺简单的,后来,,
//
// Created by snnnow on 2020/7/15.
//
//要注意一一下你存储数据,用vector存,直接存一个结构体就好
#include<iostream>
#include <sstream>
#include <string.h>
#include <vector>
using namespace std;
struct price{
    int a,b,c;
};//用的时候直接price p={1,2,3}就可以
vector<price> v1;
vector<price> v2;
char to(char c){
    if(c=='1')
        return '1';
    if(c=='2')
        return '2';
    if(c=='5')
        return '5';
    if(c=='6')
        return '9';
    if(c=='8')
        return '8';
    if(c=='9')
        return '6';
    if(c=='0')
        return '0';
}

void i2s(int i, string &str){//一定要注意是引用
    stringstream ss;
    ss<<i;
    ss>>str;

}
void s2i(string &str,int &i){
    stringstream ss;
    ss<<str;
    ss>>i;
}
string reverse(const string &str){//不要忘记加引用
    string ans;
    for (int i = 3; i >=0 ; --i) {
        ans.insert(ans.end(),to(str[i]));//string中的insert函数

    }
    return ans;

}


int main(){


    for (int i = 1000; i < 10000; ++i) {
        //cout<<i<<endl;
        //先转字符串
        string str;
        string rstr;
        i2s(i,str);
        //cout<<str<<endl;
        if(str.find('3')!=string::npos || str.find('4')!=string::npos || str.find('7')!=string::npos ||str.rfind('0')==3)
            continue;
        rstr=reverse(str);

        int r;

        s2i(rstr,r);//r是反转后的价格
        int plus=r-i;
        //cout<<r<<" "<<i<<" "<<plus<<endl;
        if(plus>-300 && plus<-200){
            price p1={i,r,plus};
            v1.push_back(p1);
        }else if(plus>800 && plus<900){
            price p2={i,r,plus};
            v2.push_back(p2);
        }

    }
//    for (int k = 0; k < v1.size(); ++k) {
//        cout<<v1[k].c<<" ";
//
//    }
//    for (int k = 0; k < v2.size(); ++k) {
//        cout<<v2[k].c<<" ";
//
//    }

    //vector遍历不必需要迭代器!!!!
    for (int j = 0; j < v1.size(); ++j) {
        for (int i = 0; i < v2.size(); ++i) {
            if(v1[j].c+v2[i].c==558){
                cout<<v1[j].a<<" ";
            }

        }

    }



}
原文地址:https://www.cnblogs.com/zhmlzhml/p/13302955.html