日常丢人——2019.2.11,记仇 回文数

今夜的各种错误成果,开心的想报警,666

正常通道

int j = p - 1, k = 0;
while (k < j&&a[j--]==a[k++]) ;
if (k == j) t++;

int j = p , k = -1;
while (k < j&&a[--j]==a[++k]) ;
if (k == j) t++;

int j = p , k = -1;
while (k < j&&a[--j]==a[++k]) ;
if (k >= j) t++;

int j = p -1, k = 0;
while (k < j){
if(a[k++]!=a[j--])break;
}
if (k >= j) t++;

正确代码:

#include <iostream>
#include <string.h>
using namespace std;

bool check(int x) {
    int a[20],t = 0;
    for (int i = 2; i <= 10; i++) {
        int q = x, p = 0;
        memset(a, 0, sizeof(int) * 20);
        while (q) {
            a[p++] = q % i;
            q /= i;
        }
        int j = p - 1, k = 0;
        while (k < j) {
            if (a[j] != a[k]) break;
            j--; k++;
        }
        if (k >= j)t++;
        if (t == 2)return 1;
    }
    return 0;
}

int main() {
    int N, S, count = 0;
    cin >> N >> S;
        for (int i = S + 1; count < N; i++) {
            if (check(i)) {
                count++;
                cout << i << endl;
            }
        }
    return 0;
}

原文地址:https://www.cnblogs.com/czc1999/p/10363207.html

时间: 02-11

日常丢人——2019.2.11,记仇 回文数的相关文章

12--c完数/最大公约数/最小公倍数/素数/回文数

完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报  分类: C/C++(60)  哈尔滨工业大学(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. 1.一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). [cpp] view plain copy #include <stdio.h> #include <math.h

暑假集训7.11 字符串回文暴力

#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; #define MM(a,b) memset(a,b,sizeof(a)); const double eps = 1e-10; const int i

洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes

题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上,有一些数(如21),在十进制时不是回文数,但在其它进制(如二进制时为10101)时就是回文数. 编一个程序,从文件读入两个十进制数N (1 <= N <= 15)S (0 < S < 10000)然后找出前N个满足大于S且在两种或两种以上进制(二进制至十进制)上是

一个5位数,判断它是不是回文数

题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 1 package com.li.FiftyAlgorthm; 2 3 import java.util.Scanner; 4 5 /** 6 * 题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 7 * @author yejin 8 */ 9 public class Palindrom { 10 public static void main(Strin

习题-四季-回文数-不死神兔

1-键盘录入月份,输出对应的季节.一年有四季;3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季 public class Demo02Test {     public static void main(String[] args) {         // 键盘录入一个月份,用Scanner实现         Scanner sc = new Scanner(System.in);         // 接收数据         System.out.println("请

输出1-256之间一个数的平方是回文数

方法: 通过一个函数求出这个数一共是几位数 循环取余数依次放入临时数组 通过数组下标循环判断 1 //功能:打印所有不超过 n( n<256)的其平方具有对称性的数(也称回文数) 2 3 4 5 #include<stdio.h> 6 #include<stdlib.h> 7 8 int judg(int); 9 int getBit(int); //返回整数值的位数 10 11 void main(){ 12 for (int i = 0; i < 256; i++)

05:素数回文数的个数

描述 求11到n之间(包括n),既是素数又是回文数的整数有多少个. 输入 一个大于11小于1000的整数n.输出11到n之间的素数回文数个数. 样例输入 23 样例输出 1 提示回文数指左右对称的数,如:292,333. 来源 06计算概论课 代码 1 略 2 using namespace std; 3 bool sunum(int a) 4 { 5 for(int i=2;i<=sqrt(a);i++) 6 { 7 if(a%i==0) return 0; 8 } 9 return 1; 1

洛谷 P1015 回文数 Label:续命模拟QAQ

题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884. 写一个程序,给定一个N(2<=N<=10,N=1

回文数猜想(hd1282)

回文数猜想 Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止.例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数.于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数.至今

OJ刷题之《有序回文数》

题目描述 有序回文数是一种很特殊的数,像43211234,321123,现在我把11称为一阶回文数,2112称为二阶回文数,以此类推. 小平刚开始学递归,想用递归的方法输出一个n(<=9)阶的回文数.你可以帮助他吗? 输入 一个整型变量n,表示第n阶回文数. 输出 第n阶回文数 样例输入 3 样例输出 321123 提示 主函数已给定如下,提交时不需要包含下述主函数 #include<stdio.h> int main() { int n; void digui(int); scanf(