int procs(int num, int base) { int digit[32], len = 0, i = 0; int temp = num; if( temp == 0 ) { printf("Yes\n0\n"); return 0; } while(temp != 0) { digit[i] = temp % base; temp = temp / base; i++; len++; } if( isPal(digit, len) == 0 ) { printf("Yes\n"); } else { printf("No\n"); } reverseShowNum(digit, len); return 0; }
int main() { FILE *fin = fopen("palsquare.in", "r"); FILE *fout = fopen("palsquare.out", "w"); int base; fscanf(fin, "%d", &base); int i; for(i = 1; i < 301; i++) { char *form; form = change(i * i, base); if(isPal(form)) { form = change(i, base); fprintf(fout, "%s ", form); form = change(i * i, base); fprintf(fout, "%s\n", form); } } fclose(fin); fclose(fout); }
void findCandiates(string &s, vector<string> &left, vector<string> &right) { int l = s.length(); string rStr = string(s.rbegin(), s.rend()); left.push_back(rStr); right.push_back(rStr); for (int i = 0; i < l; i++) { if (isPal(s, 0, i)) { string eStr = s.substr(i+1); left.push_back(string(eStr.rbegin(), eStr.rend())); } if (isPal(s, l-i-1, l-1)) { string bStr = s.substr(0, l-1-i); right.push_back(string(bStr.rbegin(), bStr.rend())); } } }
int minCut(string s) { int len = s.length(); if(len <=1) return 0; vector<vector<int>> isPal(len, vector<int>(len)); int curLen = 0; for(int i=len-1; i>=0; i--) { for(int j=i; j<len; j++) { curLen = j-i+1; if(curLen<=2) { if(curLen==1) isPal[i][j] = 1; else isPal[i][j] = s[i] == s[j]; } else { isPal[i][j] = (s[i] == s[j] && isPal[i+1][j-1]); } } } vector<int> cut(len, INT_MAX); for(int end=0; end<len; end++) { for(int st=0; st<=end; st++) { if(isPal[st][end]) cut[end] = st==0?0:min(cut[st-1]+1, cut[end]); } } return cut[len-1]; }
int main () { int b1, b2, n = 0; unsigned long long int i; printf("\nEnter two positive numbers : "); scanf("%d%d", &b1, &b2); if(b1 < 2 || b2 < 2) return 1; printf("\nFirst 10 double base palindromes are : \n"); for (i = 0; n < 10; i++) if(isPal(i, b1)) if(isPal(i, b2)) { printf("%Lu, ", i); fflush(stdout); n++; } printf("\b\b \n"); }
int main(){ int limit = 10000; // begränsningen på tal vi ska undersöka char test[15]; // test for(int i = 0; i < limit; i++){ sprintf(test, "%d", i); // omvandla i till sträng if(isPal(test)) // om test är palidrom, skriv ut printf("%d\n", i); } }
int main(void) { int n; printf("\nEnter n:"); scanf("%d",&n); if(isPal(n)) printf("\n%d is palindrome.",n); else printf("\n%d is not a palindrome.",n); }
int minCut(string s) { if(s.length() == 0) return 0; vector<int> c(s.length()+1, s.length()); c[0] = -1; vector<vector<bool> > isPal(s.length(), vector<bool>(s.length(), false)); for(int i = 1; i <= s.length(); i++){ for(int j = 0; j < i; j++){ if(s[j] == s[i-1] && (j+1 >= i-1 || isPal[j+1][i-1])){ isPal[j][i] = true; c[i] = min(c[i], c[j]+1); } } } return c[s.length()]; }
void partitionHelper(string &s, int start, vector<vector<string> > &res, vector<string> &sol, vector<vector<int> > &mp){ if(start == s.length()){ res.push_back(sol); return; } for(int i=start; i<s.length(); i++){ if(isPal(start, i, s, mp)){ sol.push_back(s.substr(start, i-start+1)); partitionHelper(s, i+1, res, sol, mp); sol.pop_back(); } } }
vector<vector<string> > dfs(const string &s, int x) { vector<vector<string> > res; if (x >= n) { res.push_back(vector<string>()); return res; } for (int i = x; i < n; i++) { if (isPal(s, x, i)) { vector<vector<string> > t = dfs(s, i + 1); string ss = s.substr(x, i - x + 1); for (int j = 0; j < t.size(); j++) t[j].push_back(ss); res.insert(res.end(), t.begin(), t.end()); } } return res; }
int main() { while( (i >= 100) && (palindrome == 0) ) { while( (j >= 100) && (palindrome == 0) ) { if( isPal( i * j ) ) palindrome = (i * j); --j; } --i; } std::cout << "largest palindrome is: " << palindrome << "\n"; }
int main() { int i,j; int m=0; for(i=999;i>=100;i--) { for(j=999;j>=100;j--) { if (isPal(i*j)&& (i*j)>m) { m=i*j; } } } printf("%d",m); }
int main() { FILE *out = fopen("pprime.out","w"); int i; freopen("pprime.in","r",stdin); scanf("%d%d",&a,&b); fclose(stdin); if(a==5&&b==100000000) { for(i=0;i<779;i++) fprintf(out,"%d\n",test9[i]); return 0; } for(a=a;a<=b;a++) if(isPal(a)&&isPrime(a)) fprintf(out,"%d\n",a); fclose(out); return 0; }
int minCut(string s) { vector<int> minCuts(s.length()+1,-1); minCuts[s.length()] = -1; vector<bool> tmp (s.length()+1,false); vector<vector<bool> > isPal(s.length()+1, tmp); for(int i = s.length()-1;i >= 0;i--) { minCuts[i] = s.length() - i - 1; for(int j = i ; j < s.length(); j++) { if(s[i] == s[j] &&(j - i <= 2 || isPal[i+1][j-1])) { isPal[i][j] = true; minCuts[i] = min(minCuts[i],minCuts[j+1] + 1); } } } return minCuts[0]; }
int main(int argc, char **argv) { setlocale(0, ""); char * phrase = strdup("testset"); int len = strlen(phrase), count = 0; for (int i = 0; i < len; i++) { for (int n = 1; n <= len - i; n++) { if(isPal(phrase, i, n)) { printf("%s\n", GetSub(phrase, i, n)); count++; } } } printf("—уществует %i различных способов получить из строки \"%s\" палиндром.\n", count, phrase); return 0; }