这两道题都是我大一时候的练习题,今天才发现我居然在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;
}
}