首页 > 试题广场 >

反序相等

[编程题]反序相等
  • 热度指数:13002 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
设N是一个四位数,它的9倍恰好是其反序数(例如:1234 的反序数是4321),求N的值。

输入描述:


输出描述:
每行一个数,表示满足题目要求的数。
示例1

输入

输出

for i in range(1000, 1111):
    if str(i * 9) == str(i)[::-1]:
        print(i)
发表于 2019-03-30 08:31:11 回复(2)
#include<bits/stdc++.h>
int main(){
    for(int j=0;j<2;j++)
        for(int k=0;k<10;k++)
            for(int l=0;l<10;l++)
                if(((1000+j*100+k*10+l)*9)==(l*1000+k*100+j*10+1))
                    printf("%d\n",1000+j*100+k*10+l);
}
发表于 2019-03-04 16:10:37 回复(3)
print('\n'.join([str(x) for x in range(1000, 1112) if int(str(x)[::-1]) == x*9]))
发表于 2019-03-15 14:53:21 回复(0)
import java.util.*;
public class Main{
    public static void main(String [] args){
        for(int N=1000;N<=1111;N++){
 if((N*9%10==N/1000)&&(N*9/10%10==N/100%10)&&(N*9%1000/100==N/10%10)&&(N*9/1000==N%10))
                  System.out.println(N);  
    }
    }
}

发表于 2019-04-02 18:58:32 回复(1)

public class Main {
    public static void main(String[] args) {
        for(int i=1000;i<9999;i++){
            int re = i*9;
            if(re>9999){
                continue;
            }
            StringBuffer sb = new StringBuffer(String.valueOf(re));
            if(i == Integer.valueOf(sb.reverse().toString())){
                System.out.println(i);
            }
        }
    }
}

发表于 2019-03-23 23:38:04 回复(0)
#include<iostream>
#include<vector>

using namespace std;

int main()
{
	for(int i=1000;i<9999;i++)
	{
		int k=i*9;
		vector<int> v;
		while(k)		//È¡³öÿһλ 
		{
			v.push_back(k%10);
			k=k/10;
		}
		int ans=0;
		for(vector<int>::iterator it=v.begin();it!=v.end();it++)
		{
			ans=ans*10+(*it);
		}
		if(ans==i)	cout<<ans;
	}
}

发表于 2020-02-15 00:02:51 回复(0)
#include <iostream>
using namespace std;
int main(void)
{
   int n, m,a,b;
    for(n=1000;n<10000;n++)
    {
  m=9*n;a=0;
    
    while (m>0)
    {
        
        a=a*10+(m%10);
        m=m/10;
        
    }
    if(a==n)
        cout<<n<<endl;
    }
}
发表于 2019-04-12 18:20:19 回复(0)
#include<stdio.h>
int rever(int a)
{
    int ans=0;
    while(a)
    {
        ans*=10;
        ans+=a%10;
        a/=10;
    }
    return ans;
}
int main()
{
    for(int i=1000;i<=9999;i++)
    {
        if(rever(i*9)==i)
            printf("%d",i);
    }
    return 0;
}
发表于 2019-03-20 20:30:40 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        for(int i = 1000; i <= 9999; i++){
            String str1 = i + "";
            int sum = i*9;
            StringBuffer sb = new StringBuffer(str1);
            String str2 = new String(sb.reverse());
            if(str2.equals(sum+"")){
                System.out.println(i);
            }
        }
    }
}

发表于 2019-03-15 09:06:29 回复(0)
public class Main{
    public static boolean check(int a){
        char[] a1 = String.valueOf(a).toCharArray();
        char[] a2 = String.valueOf(a*9).toCharArray();
        
        int i=0;
        for(int j=3;j>=0;j--){
            if(a2[j]!=a1[i]){
                return false;
            }
            i++;
        }
        return true;
    }
    
    public static void main(String args[]){
        for(int n=1000;n<=1111;n++){
            if(check(n)){
                System.out.println(n);
            }
        }
    }
}
发表于 2019-03-14 14:26:04 回复(0)
<pre class="prettyprint lang-cpp">#include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>int i,n; <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>int a,b,c,d; <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>int e,f,g,h; <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>for(i=10000;i&lt;1111;i++) <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>{ <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>n=i*9; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>a=n/1000; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>b=n/100%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>c=n/10%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>d=n%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>e=i/1000; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>f=i/100%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>g=i/10%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>h=i%10; <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>if(a==h &amp;&amp; b==g &amp;&amp; c==f &amp;&amp; d==e) <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>printf("%d\n",i); <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>} <span>&nbsp;&nbsp;&nbsp;&nbsp;</span>return 0; } </pre> <stdio.h><string.h></string.h></stdio.h>
编辑于 2019-03-14 10:38:49 回复(0)
i的范围不需要从1000到9999的
发表于 2019-03-02 11:04:02 回复(0)
 #include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<math.h>
#include<map>
using namespace std;
int main()
{
    cout<<"1089"<<endl;
    return 0;
 } 

发表于 2019-02-19 20:04:10 回复(4)
#include<iostream>
using namespace std;
int main() {
    int n;
    for (int n = 1000; n <= 9999; n++) {
        int reverse = 0, temp = n;
        while (temp>0) {
            reverse = reverse * 10 + (temp % 10);
            temp /= 10;
        }
        if (reverse == n * 9)
            cout << n << endl;
    }
}

发表于 2019-02-23 21:57:58 回复(7)
#include<stdio.h>
int main()
{
    int i,j,sum;
    for(i=1000;i<10000;i++)
    {
        sum=0;j=i;
        while(j)
        {
            sum=sum*10+j%10;
            j/=10;
        }
        if(sum==i*9)
            printf("%d\n",i);
    }
}

发表于 2020-05-10 21:52:57 回复(0)
#include <iostream>  
#include <cstring>  
#include <sstream>  
#include <string>  
#include <algorithm>  
using namespace std;  
  
int main() {  
    for ( int i = 1000; i <= 1111; i ++ ){  
        string s = to_string(i);  
        reverse(s.begin(),s.end());  
        int x = stoi(s);  
        if ( i*9 == x ) cout << i << endl;  
    }  
    return 0;  
}


发表于 2024-03-10 19:17:37 回复(0)
解法1:for循环暴力枚举
#include <cstdio>
 
int main(){
    int a,b,c,d;
    for(int a=1;a<=9;++a){ //四位数,a不能为0
        for(int b=0;b<=9;++b){
            for(int c=0;c<=9;++c){
                for(int d=0;d<=9;++d){
                    if((1000*a+100*b+10*c+d)*9 == 1000*d+100*c+10*b+a){
                        printf("%d%d%d%d",a,b,c,d);
                    } 
                }
            }
        }
    }
    return 0;
}

解法2:逆序数Reverse函数
#include <cstdio>

int Reverse(int n){
    int reverse = 0,remain = 0;
    while(n != 0){
        remain = n%10;
        n /= 10;
        reverse = reverse*10 + remain;
    }
    return reverse;
}

int main(){
    for(int i=1000;i<=1111;++i){ //9倍是四位数,原数最大为1111
        if(Reverse(i) == 9*i){
            printf("%d\n",i);
        }
    }
    return 0;
}


发表于 2023-03-22 11:26:13 回复(0)
#include<stdio.h>
int reverse(int n){
    int reversenumber=0;
    int remainnumber=0;
    while(0!=n){
        remainnumber=n%10;    //4
        n=n/10;     //123
        reversenumber=reversenumber*10 + remainnumber;
    }
        //int reversenumber=0;
        //int remainnumber=0;
        //remainnumber=n%10    //4
        //n=n/10;     //123
        //reversenumber=reversenumber*10 + remainnumber;
    return reversenumber;
}
int main(){
    int a,b,c,d;
    for(a=1;a<=9;a++){
        for(b=0;b<=9;b++){
            for(c=0;c<=9;c++){
                for(d=0;d<=9;d++){
                    if((1000*a+100*b+10*c+d)*9==reverse(1000*a+100*b+10*c+d)){
                        printf("%d\n",1000*a+100*b+10*c+d);
                    }
                }
            }
        }
    }
}
发表于 2023-03-02 17:08:27 回复(0)
#include <iostream>
using namespace std;
int reverse(int n) {                    //求反序数
    int rev = 0;
    while (n) {
        rev = rev * 10 + n % 10;
        n /= 10;
    }
    return rev;
}
int main() {
    for (int i = 1000; i <= 9999; i++)
        if (i * 9 == reverse(i))
            cout << i << endl;
}

发表于 2023-01-17 21:15:03 回复(0)



刚学C一周 这错哪了?输出不是1089吗???


#include<stdio.h>
int main(){
    int N=1000;
    int i,k;
    int a=0;
    int b=0;
    for(N;N<1112;N++){
        k=N;
        for(i=4;i>0;i--){
            b=k%10;
            a=a*10+b;
            k/=10;
        } 
        if(9*N==a){printf("%d\n",N);}
        a=b=0;    
 }
    
    
}
发表于 2021-12-17 02:13:56 回复(0)