c++不知道为什么总是WA
这是我的代码:#include<iostream>inta[200];usingnamespacestd;intmain(){intn;cin>>n;intcount=0...
这是我的代码:
#include<iostream>
int a[200];
using namespace std;
int main()
{
int n;
cin>>n;
int count=0;
int ans=0;
if(n==0){cout<<0<<endl;return 0;}
else if(n==1){cout<<1<<endl;return 0;}
else
{
for(int i=9;i>=2;i--) //分解因子
{
while(n%i==0)
{
a[ans++]=i;
count++;
n/=i;
}
}
if(n>10)cout<<-1<<endl; //若n大于10,则输出-1
else
{
for(int i=count-1;i>=0;i--)
cout<<a[i];
cout<<endl;
}
}
return 0;
} 展开
#include<iostream>
int a[200];
using namespace std;
int main()
{
int n;
cin>>n;
int count=0;
int ans=0;
if(n==0){cout<<0<<endl;return 0;}
else if(n==1){cout<<1<<endl;return 0;}
else
{
for(int i=9;i>=2;i--) //分解因子
{
while(n%i==0)
{
a[ans++]=i;
count++;
n/=i;
}
}
if(n>10)cout<<-1<<endl; //若n大于10,则输出-1
else
{
for(int i=count-1;i>=0;i--)
cout<<a[i];
cout<<endl;
}
}
return 0;
} 展开
展开全部
题目的思路就是:每位上的数字只能是1-9,并且位数越少得到的结果就越小,从9开始枚举,求n的因子,在一开始判断一下n==0,cout << 10 << endl;和n==1,cout << 1 << endl;的情况
少写了一个循环吧,题目没有说是只有一次输入和输出,所以输入那里应该是while (cin >> n)
少写了一个循环吧,题目没有说是只有一次输入和输出,所以输入那里应该是while (cin >> n)
追问
输入0的时候不应该输出0吗?
追答
题目中说是minimal positive integer,即最小正整数,0不是正整数,也不是负整数!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询