admin管理员组文章数量:1516870
【离散数学
【开篇bb】
我又来码作业了,现在已经第八周了,为什么2-7周没有码作业呢?因为我没有好好学习,作业都没好好做而且掐着ddl做作业哪有时间整理博客呢(虽然现在还在卡ddl,太顶了呜呜呜)
这次主要是两道置换群的编程题,两道题编了仨小时,也算是很努力了叭QAQ
//
置换的轮换表示
题目:
输入:
置换后的序列
输出:
不相杂的轮换乘积,每行表示一个轮换(轮换的起始数字最小,每个轮换的起始数字递增排序,单轮换省略)
例如:
样例1:
输入:(空格分隔)
3 1 6 2 9 7 8 4 5
输出:
1 3 6 7 8 4 2(空格分隔)
5 9(空格分隔)
样例2:
输入:(空格分隔)
4 6 7 5 1 2 3
输出:
1 4 5(空格分隔)
2 6(空格分隔)
3 7 (空格分隔)
因为我还在赶ddl,就先不分析啦,反正代码注释也写得挺明白的嘿嘿
#include <stdio.h>
#include <string.h>
main()
{char c[50];gets(c); int n=(strlen(c)+1)/2;int i,j=0,k,flag=1,a[25],b[25];for(i=0;i<n;i++){a[i]=c[2*i]-48;b[i]=0;}int l=1;b[j]=l; printf("%d ",b[j]); j++;for(i=0;j<n;){if(a[i]==l) //a[i]等于这一轮换的头,说明轮换结束 {printf("\n"); //找下一个轮换的头 l++; while(flag==1){for(k=0;k<j;k++){ //l不能已经在之前的轮换中 if(l==b[k]) break;}if(k==j) //l不在轮换里 {if(l==a[l-1]){本文标签: 离散数学
版权声明:本文标题:【离散数学 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1725702681a1013155.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论