int main(int argc, char *argv[]) { int sum, i; sum = 0; for (i = 1; i < NUMBER_MAX; i++) { if (palindromic(2, i) && palindromic(10, i)) sum += i; } printf("%d\n", sum); return 0; }
int main() { unsigned int result = 0; for (unsigned int i = 100; i < 1000; i++) { for (unsigned int j = i; j < 1000; j++) { unsigned int candidate = i * j; if (palindromic(candidate) && candidate > result) { result = candidate; } } } printf("%u\n", result); return EXIT_SUCCESS; }
int main() { scanf("%s%d",nc,&k); int len = strlen(nc); for(int i=0;i<k;i++){ if(palindromic(nc,len)){ printf("%s\n%d\n",nc,i); //system("pause"); return 0; } char t[N]; for(int i=0; i< N;i++) t[i]='0'; //printf("%s\n",nc); for(int i = 0;i<len;i++){ t[i] += (nc[i]-'0'+nc[len-1-i]-'0'); t[i+1] += (t[i]-'0')/10; t[i] = '0'+(t[i]-'0')%10; } //if(t[len]=='0') // t[len] = '\0'; //else // t[len+1] = '\0'; //printf("t:%s\n",t); for(int i=N-1;i>=0;i--){ if(t[i]!='0'){ len=i+1; break; } } for(int i=len-1;i>=0;i--) nc[len-1-i] = t[i]; nc[len]='\0'; //printf("nc:%s len: %d\n",nc,len); } printf("%s\n%d\n",nc,k); //system("pause"); return 0; }
int problem4( void ) { int i, n; char szNum[64]; int temp=0; int biggest=0; for (i=999; i>=100; i--) { for (n=999; n>=100; n--) { temp = i*n; sprintf( szNum, "%d", temp); if ( palindromic(szNum) ) { if ( temp > biggest ) biggest = temp; } } } return biggest; }
/** * @param s input string * @return the longest palindromic substring */ string longestPalindrome(string& s) { // Write your code here //o(n*n) // int re_length = 1; // string result = s.substr(0,1); // for(int i = 0; i < s.size(); ++i){ // int start = i - 1; // int end = i + 1; // doWhile(start, end, re_length, result, s); // end = i + 1; // if(end < s.size() && s[i] == s[end]){ // start = i; // doWhile(start, end, re_length, result, s); // } // start = i - 1; // if(start > -1 && s[start] == s[i]){ // end = i; // doWhile(start, end, re_length, result, s); // } // } // return result; // } // void doWhile(int start, int end, int& re_length, string& result, string& s){ // while(start > -1 && end < s.size() && s[start] == s[end]){ // --start; // ++end; // } // if(!(start > -1 && end < s.size())){ // ++start; // --end; // }else if(s[start] != s[end]){ // ++start; // --end; // } // if(re_length < end - start + 1){ // re_length = end - start + 1; // result = s.substr(start, re_length); // } //o(n) string T = "^"; if(s.empty()) T += "$"; else{ for(auto c : s){ T += "#"; T.push_back(c); } T += "#$"; } int n = T.length(); int center = 0; int right = 0; vector<int> palindromic(n, 0); for(int i = 1; i < n-1; ++i){ int i_mirror = 2 * center - i; palindromic[i] = (right > i) ? min(right - i, palindromic[i_mirror]) : 0; while(T[i + palindromic[i] + 1] == T[i - palindromic[i] - 1]) ++palindromic[i]; if(i + palindromic[i] > right){ center = i; right = i + palindromic[i]; } } int max_length = 0; center = 0; for(int i = 0; i < palindromic.size(); ++i){ if(palindromic[i] > max_length){ max_length = palindromic[i]; center = i; } } return s.substr((center - 1 - max_length)/2, max_length); }