这个怎么输入啊
查看原帖
这个怎么输入啊
229636
百里狂生楼主2024/8/24 12:11

精通c++想着自学java,可是一上手就是各种疑难杂症


#include<iostream>
#include<cmath>
using namespace std;
int i;
char ch;
int a[400000];
int n,t,p;
int main()
{
	i=1;
	while(cin>>ch)
		a[i++]=ch;
	n=sqrt(i-1);
	cout<<n<<" ";
	p=1;
	if(a[p]!='0')
		cout<<0<<" ";
	while(p<=n*n)
	{
		if(a[p]==a[p+1])
		{
			t++;
			p++;
		}
		else
		{
			cout<<t+1<<" ";
			t=0;
			p++;
		}
	}
	return 0;
}

这是通过的c++原程序,我把它翻译成了java,变成了这样:


import java.util.Scanner;

public class P1320{
    static int i=0,n=0,t=0,p=0,ch;
    static int[] a=new int [400000];
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            ch=in.nextInt();
            a[++i]=ch;
        }
        n=(int)Math.sqrt(i);
        System.out.print(n+" ");
        if(a[1]!='0'){
            System.out.print("0 ");
        }else{
            System.out.print(" ");
        }
        p=1;
        while(p<=n*n){
            if(a[p]==a[p+1]){
                t++;
                p++;
            }else{
                System.out.print(t+1+" ");
                t=0;
                p++;
            }
        }
        in.close();
    }
}

如你所见,while输入始终无法完成,无论是按ctrl+z还是按ctrl+d都无法完成输入,交上去是RE和WA的混合版,求大佬赐教!!

2024/8/24 12:11
加载中...