排列问题

问题描述

用1,2,3...9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所以解,希望吓哥们能尽快给出解答

解决方案

解决方案二:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Collections;publicpartialclassCSDN:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){//Response.Write(IsOneTwoThree(1,2,3));OutputResult();}}publicvoidOutputResult(){ArrayListal=newArrayList(){1,2,3,4,5,6,7,8,9};ArrayListal1=newArrayList();ArrayListal2=newArrayList();ArrayListal3=newArrayList();ArrayListal4=newArrayList();ArrayListal5=newArrayList();ArrayListal6=newArrayList();ArrayListal7=newArrayList();ArrayListal8=newArrayList();intcount=0;for(inti1=1;i1<=9;i1++){al1=newArrayList(al.Count){al[0],al[1],al[2],al[3],al[4],al[5],al[6],al[7],al[8]};al1.RemoveAt(al1.IndexOf(al1[i1-1]));for(inti2=1;i2<=8;i2++){al2=newArrayList(al1.Count){al1[0],al1[1],al1[2],al1[3],al1[4],al1[5],al1[6],al1[7]};al2.RemoveAt(al2.IndexOf(al2[i2-1]));for(inti3=1;i3<=7;i3++){al3=newArrayList(al2.Count){al2[0],al2[1],al2[2],al2[3],al2[4],al2[5],al2[6]};al3.RemoveAt(al3.IndexOf(al3[i3-1]));for(inti4=1;i4<=6;i4++){al4=newArrayList(al3.Count){al3[0],al3[1],al3[2],al3[3],al3[4],al3[5]};al4.RemoveAt(al4.IndexOf(al4[i4-1]));for(inti5=1;i5<=5;i5++){al5=newArrayList(al4.Count){al4[0],al4[1],al4[2],al4[3],al4[4]};al5.RemoveAt(al5.IndexOf(al5[i5-1]));for(inti6=1;i6<=4;i6++){al6=newArrayList(al5.Count){al5[0],al5[1],al5[2],al5[3]};al6.RemoveAt(al6.IndexOf(al6[i6-1]));for(inti7=1;i7<=3;i7++){al7=newArrayList(al6.Count){al6[0],al6[1],al6[2]};al7.RemoveAt(al7.IndexOf(al7[i7-1]));count+=1;//Response.Write(string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}当前第{9}个",al[i1-1],al1[i2-1],al2[i3-1],al3[i4-1],al4[i5-1],al5[i6-1],al6[i7-1],al7[0],al7[1],count)+"</br>");longs=long.Parse(""+al[i1-1]+al1[i2-1]+al2[i3-1]+al3[i4-1]+al4[i5-1]+al5[i6-1]+al6[i7-1]+al7[0]+al7[1]);longa=s/100000;longb=(s-a*100000)/100;longc=s-a*100000-b*100;if(IsOneTwoThree(a,b,c)){Response.Write(string.Format("{0}:{1}:{2}",a,b,c));Response.Write("</br>");}count+=1;//Response.Write(string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}当前第{9}个",al[i1-1],al1[i2-1],al2[i3-1],al3[i4-1],al4[i5-1],al5[i6-1],al6[i7-1],al7[1],al7[0],count)+"</br>");longs1=long.Parse(""+al[i1-1]+al1[i2-1]+al2[i3-1]+al3[i4-1]+al4[i5-1]+al5[i6-1]+al6[i7-1]+al7[1]+al7[0]);longa1=s/10000;longb1=(s-a*100000)/100;longc1=s-a*100000-b*100;if(IsOneTwoThree(a1,b1,c1)){Response.Write(string.Format("{0}:{1}:{2}",a1,b1,c1));Response.Write("</br>");}}}}}}}}Response.Write(""+count);}publicboolIsOneTwoThree(longa,longb,longc){boolflag=false;if((b/a)==2&&(c/a)==3&&(a/b)==2/3){flag=true;}returnflag;}}

貌似还有点小问题,等回家明天再改改看

时间: 2024-10-31 03:19:04

排列问题的相关文章

c-编程作业排列4个数的大小

问题描述 编程作业排列4个数的大小 将4个变量(a, b, c, d)按照由小到大的顺序进行排列,排序结果中,a保存最小的数,d保存最大的数.请书写程序. 解决方案 我还是发给图片吧,你看看: 如果回答对您有帮助,请采纳 解决方案二: #include <stdlib.h> #include <stdio.h> int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } int main()

win7电脑如何实现IE8浏览器重新排列选项卡?

          win7电脑如何实现IE8浏览器重新排列选项卡?   1.首先,咱们需要双击打开win7旗舰版中的IE8浏览器,然后在上方的任务栏窗口中依次点击工具-Internet选项. 2.在打开的Internet选项窗口中,咱们将界面切换到常规这一栏,然后就可以看到下面有一个主页的选项,就是在窗口的第一个栏目,咱们可以看到,这里的窗口中有几个网址信息,大家可以对照一下,这里的网址信息便是咱们在IE8浏览器中打开的网站信息,比如说大家需要将某个网站排列到第一位,就将该网址选中,剪切,然后

Fireworks MX 2004 对象的排列

对象 4.对象的排列 同一层的不同对象在工作区上是有上下的排列顺序的,对于对象的上下排列顺序可使用菜单栏中"修改-排列"下的命令进行调整,如图3-30所示. 图3-17 另外,也可以用工具栏上的四个按钮进行调整,这也是一种较常用的方法,如图3-18. 图3-18

android-stackview 怎么设置stackview中两张图片的间隔和排列方向

问题描述 stackview 怎么设置stackview中两张图片的间隔和排列方向 我都找了一天了,网上一般用这个的好少. 解决方案 在线急等!!!!!!快来人 解决方案二: 没有 orientation 属性? 解决方案三: 去 xml文件中 看看 有什么 熟悉的属性

ios-升序排列NSDictionary

问题描述 升序排列NSDictionary 要升序排列一个NSDictionary,使用如下代码: NSDictionary *valDict = self.mGetDataDict[key][rowKey]; for (NSString *valueKey in [[valDict allKeys] sortedArrayUsingSelector:@selector(compare:)]) { if ([valueKey isEqualToString:@"attr"]) { di

java-JAVA 生成 用0到9这十个数字 所有的排列组合(0不能再第一个)

问题描述 JAVA 生成 用0到9这十个数字 所有的排列组合(0不能再第一个) 用 0到9 生成 十位数的所有排列组合,数字0不能在第一个,这个生成的十位数, 不能有重复的数字. 解决方案 public static void main(String[] args) { String str[] = { "0", "1", "2", "3", "4", "5", "6"

擅长排列的小明

擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长.现在需要你写一个程序来验证擅长排列的小明到底对不对. 输入 第一行输入整数N(1<N<10)表示多少组测试数据, 每组测试数据第一行两个整数 n m (1<n<9,0<m<=n) 输出 在1-n中选

C#非递归方式实现排列组合

C#以非递归方式实现三位排列组合,如下代码: //深度优先  class Program      {          static void Main(string[] args)          {              int[] number = new int[] { 1, 3, 5, 7 };              List data = new  List();              Stack openStack = new Stack();           

把一个字符插入到一个升序排列的字符串中

namespace Tools.Module   {       public class Tools      {            public Tools()           {            }             public static string GetStrFromStr(string src,int Index)          {                if(src.IndexOf(",")==0) src = src.Remove

计算排列组合的php代码

前些天因为业务需要写了一段计算排列组合的代码,今天整理了一下,以备后用 <?php/** * 要解决的数学问题    :算出C(a,1) * C(b, 1) * ... * C(n, 1)的组合情况,其中C(n, 1)代表从n个元素里任意取一个元素 * * 要解决的实际问题样例:某年级有m个班级,每个班的人数不同,现在要从每个班里抽选一个人组成一个小组, *                       由该小组来代表该年级参加学校的某次活动,请给出所有可能的组合 */ /* ##########