#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,a=1;
while(cin>>n){
if(n>0){
for(int i=n;i>0;i--){
a=a*i;
}
cout<<n<<"! =";
for(int j=n;j>0;j--){
cout<<" "<<j;
if(j==1) {
break;
}
cout<<" *";
}
cout<<" = "<<a<<endl;
}
else cout<<"0! = 1 = 1"<<endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,a=1;
while(cin>>n){
if(n>0){
for(int i=n;i>0;i--){
a=a*i;
}
cout<<n<<"! =";
for(int j=n;j>0;j--){
cout<<" "<<j;
if(j==1) {
break;
}
cout<<" *";
}
cout<<" = "<<a<<endl;
}
else cout<<"0! = 1 = 1"<<endl;
}
return 0;
}
你的 a 宣告在 while 迴圈外,所以記得每次迴圈開始前要重設為 1
話說 ZeroJudge 掛惹嗎