C++怪事
查看原帖
C++怪事
1390324
Mr_yang1楼主2024/11/7 17:17

这份代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,q,a[1000005]; 
int ws(int n){int s;while(n)n/=10,s++;return s;}
int does(int n){int x=((n%10)*(n%10))%10;n/=10;return (x*pow(10,ws(n)))+n;}
int main(){
    cin>>n>>m>>q;
    for(int i=1;i<=q;i++){
    	n=does(n);a[i]=n;
		if(n==m){
    		for(int j=1;j<=i;j++)cout<<a[j]<<endl;
    		return 0;
		}
	}
	cout<<-1;
}

看似没问题但是输出总是-1,再来看看下面这个:

#include<bits/stdc++.h>
using namespace std;
int n,m,q,a[1000005]; 
int ws(int n){int s;while(n)n/=10,s++;return s;}
int does(int n){int x=((n%10)*(n%10))%10;n/=10;return (x*pow(10,ws(n)))+n;}
int main(){
    cin>>n>>m>>q;
    for(int i=1;i<=q;i++){
    	n=does(n);a[i]=n;
		if(n==m){
    		for(int j=1;j<=i;j++)cout<<a[j]<<endl;
    		return 0;
		}
		cout<<"";//加了这一行
	}
	cout<<-1;
}

加了一行无用代码后就可以规样例了。

但是

样例全对,提交10pts,求调。

2024/11/7 17:17
加载中...