Life of xhu

About

HOJ补完计划之1004 & 2601

May 15, 2014

  |   #HOJ

这两道题都是我大一时候的练习题,今天才发现我居然在HOJ上都没有AC,真心不能忍,赶紧搞定之~

1004

#include <iostream>
#include <cmath>
using namespace std;
int Palindromes[1000000], PP[10000];

void getPalindromes(int & count){
    for(int i = 5; i <= 9; i += 2)
        Palindromes[count++] = i;
    Palindromes[count++] = 11;  //居然一直忘了11这个数,蛋疼啊>_<
    for(int i = 1; i <= 9; i += 2)
        for(int j = 0; j <= 9; j++)
            Palindromes[count++] = i * 100 + j * 10 + i;
    for(int i = 1; i <= 9; i += 2) 
        for(int j = 0; j <= 9; j++)
            for(int k = 0; k <= 9; k++)
                Palindromes[count++] = i * 10000 + j * 1000 + k * 100 + j * 10 + i;
    for(int i = 1; i <= 9; i += 2)
        for(int j = 0; j <= 9; j++)
            for(int k = 0; k <= 9; k++)
                for(int l = 0; l <= 9; l++)
                    Palindromes[count++] = i * 1000000 + j * 100000 + k * 10000 + l * 1000 + k * 100 + j * 10 + i;
    for(int i = 1; i <= 9; i += 2)
        for(int j = 0; j <= 9; j++)
            for(int k = 0; k <= 9; k++)
                for(int l = 0; l <= 9; l++)
                    for(int m = 0; m <= 9; m++)
                        Palindromes[count++] = i * 100000000 + j * 10000000 + k * 1000000 + l * 100000 + m * 10000 + l * 1000 + k * 100 + j * 10 + i;
}

void getPrimes(int count1, int & count2){
    for(int i = 0; i < count1; i++){
        bool isPrime = true;
        for(int j = 2; j <= (int)sqrt((double)Palindromes[i]); j++){
            if(Palindromes[i] % j == 0){
                isPrime = false;
                break;
            }
        }
        if(isPrime){
            PP[count2++] = Palindromes[i];
        }
    }
}

int main(){
    int count1 = 0, count2 = 0, a, b;
    getPalindromes(count1);
    getPrimes(count1, count2);
    cin >> a >> b;
    for(int i = 0; i < count2; i++){
        if(PP[i] >= a){
            if(PP[i] <= b)
                cout << PP[i] << endl;
            else
                break;
        }
    }
}  

2601

#include <iostream>
#include <iomanip>
#include <string>
#include <map>
using namespace std;

int main(){
    double sum, count;
    string input;
    bool err;
    map<char, int>score;
    score['A'] = 4, score['B'] = 3, score['C'] = 2, score['D'] = 1, score['F'] = 0;
    while(getline(cin, input)){
        err = false;
        sum = count = 0;
        for(int i = 0; i < input.length(); i++){
            if(input[i] != ' '){
                count++;
                if(input[i] == 'A' || input[i] == 'B' || input[i] == 'C' || input[i] == 'D' || input[i] == 'F')
                    sum += score[input[i]];
                else
                    err = true;
            
            }
            if(err)
                break;
        }
        if(!err)
            cout << fixed << setprecision(2) << sum / count << endl;
        else
            cout << "Unknown letter grade in input" << endl;
    }
}