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;
}
展开
 我来答
soul214j
2014-01-29 · 超过11用户采纳过TA的回答
知道答主
回答量:16
采纳率:0%
帮助的人:25.8万
展开全部
题目的思路就是:每位上的数字只能是1-9,并且位数越少得到的结果就越小,从9开始枚举,求n的因子,在一开始判断一下n==0,cout << 10 << endl;和n==1,cout << 1 << endl;的情况

少写了一个循环吧,题目没有说是只有一次输入和输出,所以输入那里应该是while (cin >> n)
追问
输入0的时候不应该输出0吗?
追答
题目中说是minimal positive integer,即最小正整数,0不是正整数,也不是负整数!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式