Reverse Number

Reverse Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3872    Accepted Submission(s): 1784


Problem Description
Welcome to 2006'4 computer college programming contest!

Specially, I give my best regards to all freshmen! You are the future of HDU ACM! And now, I must tell you that ACM problems are always not so easy, but, except this one... Ha-Ha!

Give you an integer; your task is to output its reverse number. Here, reverse number is defined as follows:
1. The reverse number of a positive integer ending without 0 is general reverse, for example, reverse (12) = 21;
2. The reverse number of a negative integer is negative, for example, reverse (-12) = -21;
3. The reverse number of an integer ending with 0 is described as example, reverse (1200) = 2100.
 

Input
Input file contains multiple test cases. There is a positive integer n (n<100) in the first line, which means the number of test cases, and then n 32-bit integers follow.
 

Output
For each test case, you should output its reverse number, one case per line.
 

Sample Input
3 12 -12 1200
 

Sample Output
21 -21 2100


#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std ;
int main(void)
{
    int T;
    cin >> T ;
    while(T--){
        int n;
        cin >> n ;
        char str[102];
        sprintf(str,"%d",n);
        int flag = 0 ;
        if(n<0)
            cout<<"-" ;
        reverse(str,str+strlen(str));

        int cnt = 0 , i , j ;
        for( i = 0 ; i < strlen(str) ; i++)
            if(str[i]=='0')
                cnt ++ ;
            else
                break;
        for(  ; i < strlen(str) ; i ++)
            if(str[i]>='0'&&str[i]<='9')
                cout<<str[i];
        for( j = 0 ; j < cnt ; j ++)
            cout<<"0";
        cout<<endl;
    }
    return 0;
}


<think>我们正在解决一个Java编译错误:公共类ReverseNumber必须在名为ReverseNumber.java的文件中声明。根据Java规范,如果一个类被声明为public,那么它必须存在于一个与类名同名的.java文件中。因此,解决方案是确保公共类ReverseNumber所在的文件名为ReverseNumber.java。然而,用户可能遇到的情况有两种:1.文件名与公共类名不一致:例如,文件名为Main.java,但其中包含publicclassReverseNumber。2.一个文件中定义了多个公共类:Java要求每个公共类都必须在自己的文件中。因此,解决方案是:-将公共类ReverseNumber所在的文件重命名为ReverseNumber.java。-或者,如果同一个文件中定义了多个公共类,那么将每个公共类拆分到各自同名的文件中。下面是一个示例代码结构:假设我们有一个ReverseNumber类,它应该是公共类:文件ReverseNumber.java:```javapublicclassReverseNumber{publicstaticvoidmain(String[]args){//反转数字的逻辑}}```如果用户还有其他的公共类,比如另一个公共类Util,那么Util必须在Util.java中。因此,用户需要检查:1.当前包含ReverseNumber类的文件名是否为ReverseNumber.java。2.该文件中是否只有一个公共类(即ReverseNumber),如果有多个公共类,则需要拆分。另外,注意:非公共类可以放在其他文件中,也可以与公共类放在同一个文件中(但公共类只能有一个)。如果用户使用的是IDE(如Eclipse、IntelliJIDEA),通常IDE会帮助创建与公共类同名的文件,但如果是手动创建文件,则需要注意文件名。所以,用户需要做的是:1.将当前文件重命名为ReverseNumber.java(如果当前文件名不是这个)。2.确保这个文件中只有一个公共类(即ReverseNumber)。这样,编译错误就会解决。生成相关问题:1.为什么Java要求公共类的类名必须与文件名相同?2.一个Java文件中可以包含多个类吗?有什么限制?3.如何修改Java文件以解决公共类与文件名不一致的问题?</think>### Java公共类必须在同名文件中的解决方案 您遇到的错误是由于Java的严格命名规则导致的。在Java中,**公共类(public class)的类名必须与源文件名完全一致**。这意味着如果您的类定义为`public class ReverseNumber`,那么它必须保存在名为`ReverseNumber.java`的文件中。这是Java编译器的强制要求[^1]。 #### 解决方案步骤: 1. **检查文件名**: - 确保源文件名与公共类名**完全匹配**(包括大小写) - 错误示例:`reversenumber.java` → 正确示例:`ReverseNumber.java` 2. **检查类定义**: ```java // 文件名必须为 ReverseNumber.java public class ReverseNumber { // 公共类名与文件名一致 public static void main(String[] args) { // 反转数字的实现代码 } } ``` 3. **处理多个类的情况**: - 一个`.java`文件中**只能有一个`public`类** - 非公共类可以共存(但建议每个类单独文件): ```java class Helper { // 非公共类允许共存 // 辅助方法 } ``` 4. **常见错误场景**: - ❌ 文件名:`Main.java` → 类名:`public class ReverseNumber` - ❌ 文件名:`ReverseNumber.java` → 类名:`public class reverseNumber`(大小写不一致) - ❌ 单个文件包含多个公共类: ```java public class ClassA { ... } // 错误! public class ClassB { ... } // 只能有一个public类 ``` #### 验证示例: 假设在`ReverseNumber.java`文件中: ```java public class ReverseNumber { public static void main(String[] args) { int num = 1234, reversed = 0; while(num != 0) { reversed = reversed * 10 + num % 10; num /= 10; } System.out.println("反转结果: " + reversed); // 输出:4321 } } ``` 编译运行: ```bash javac ReverseNumber.java # 成功编译 java ReverseNumber # 输出正确结果 ``` > **关键点总结**:Java的`public`类是文件级别的顶级元素,其命名强制要求与文件名一致。这是Java模块化设计的基础规则,确保类加载器能准确定位类定义[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值