用VC编写一个程序

swf_better 2010-02-05 09:09:40
输入一个自然数N(1-9),输出结果1到N的全排列。
...全文
247 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tang056 2010-02-09
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{
int number=1,i,s=1;

printf("input a number:");
scanf("%d",&number);
for(i=1;i<=number;i++)
s *= i;
printf("The result is:%d",s);

return 0;
}

linmei19840721 2010-02-08
  • 打赏
  • 举报
回复
引用 4 楼 zhzxlc_06 的回复:
明白全排列是什么意思了!就是求一个数的阶层啊
二楼的算法是好的!下面是我自己写的
C/C++ code#include<stdio.h>int main(void)
{int n=1,i,s=1;

printf("input a number:");
scanf("%d",&n);for(i=1;i<=n;i++)
s*=i;
printf("result is:%d",s);return0;
}


这个好像不是这个意思
mtttt 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wpooh 的回复:]
next_permutation()函数。
C/C++ code
#include<iostream>
#include<algorithm>usingnamespace std;int main()
{int i,k;int it[9]={1,2,3,4,5,6,7,8,9};
cin>>i;do{for(k=0;k<i;k++){
cout<<it[k];
}
cout<<endl;
}while(next_permutation(it,it+i));return0;
}
[/Quote]
正解
WPooh 2010-02-05
  • 打赏
  • 举报
回复
next_permutation()函数。

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int i,k;
int it[9]={1,2,3,4,5,6,7,8,9};
cin>>i;
do{
for(k=0;k<i;k++){
cout<<it[k];
}
cout<<endl;
}while(next_permutation(it,it+i));
return 0;
}
lihan6415151528 2010-02-05
  • 打赏
  • 举报
回复
这个只和算法有关 和vc无关
djlxue 2010-02-05
  • 打赏
  • 举报
回复
这个是个经典例子

#include <stdio.h>
void permutation(char a[], int m, int n)
{
int i;
char t;
if (m<n-1) {
permutation(a, m+1, n);
for (i=m+1;i<n;i++) {
t=a[m]; a[m]=a[i]; a[i]=t;
permutation(a, m+1, n);
t=a[m]; a[m]=a[i]; a[i]=t;
}
} else
{
printf("%s\n", a);
}
}
int main() {
char a[]="123";
permutation(a, 0,3);
return 0;
}

输出
123
132
213
231
321
312
chaoliu1024 2010-02-05
  • 打赏
  • 举报
回复
明白全排列是什么意思了!就是求一个数的阶层啊
二楼的算法是好的!下面是我自己写的
#include<stdio.h>
int main(void)
{
int n=1,i,s=1;

printf("input a number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
printf("result is:%d",s);

return 0;
}
chaoliu1024 2010-02-05
  • 打赏
  • 举报
回复
全排列是什么意思呢?
lovesi3344 2010-02-05
  • 打赏
  • 举报
回复
计算阶乘程序 2
#include<stdio.h>
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
double s=1;
for(i=2;i<=n;i++)
s*=i;
printf("%.0f\n",s);
}
return 0;
}
lovesi3344 2010-02-05
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
int n;
while (scanf("%d",&n)!=EOF)
{
long v[10000]={1},i=2,a=1,u=0,h=0;
for (i=2;i<=n;i++)
for (u=0,a=0;a<=h;a++)
{
u+=v[a]*i;
v[a]=u%10000;
u/=10000;
if(h==a&&u) h++;
}
printf("%d",v[h]);
while (--h>=0)
printf("%04d",v[h]);
printf("\n");
}
return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧