请输第1个数字:1 请输第2个数字:13 1 13 2 12 3 11 4 10 5 9 6 8 7请按任意键继续. .

作者&投稿:张晨 (若有异议请与网页底部的电邮联系)
请把1/6,1/3,1/2,2/3,11/6,1,13/6,4/3,3/2,5/3,5/6,2这12个数平均分成三组,使每组四个数的和相等~

一、通分:使公分母为6,得这12个数的分子依次是:
  1、2、3、4、11、6、13、8、9、10、5、12。
二、排序:分子从小到大依次是:1、2、3、4、5、6、8、9、10、11、12、13。
三、求和:分子的总和=(1+13)×13÷2-7=91-7=84。
四、平均:将分子平均分成三组,每组的和=84÷3=28。
五、观察:以下的每组数的和都是14。
  (1、13),(2、12),(3、11),(4、10),(5、9),(6、8)。
六、转化:将上述6组数所对应的数写出来,就是:
  (1/6、13/6),(1/3、2),(1/2、11/6),(2/3、5/3),(5/6、3/2),(1、4/3)。
七、分组:只要将上述6组数任意两组分成1份,就能使每组数的和相等。(有多种分法)

∴分成的三组数是(只表示出其中的一种分法):
 第一组:1/6、13/6、1/3、2;第二组:1/2、11/6、2/3、5/3;第三组:5/6、3/2、1、4/3。

//第一种

public static void main(String[] args) {
/*
1 3 6 10 15 0 (i+1) 1+0
2 5 9 14 1 (i+1) 1+1
4 8 13 2 (i+2) 2+2
7 12 3 (i+4) 4+3
11 4 (i+4) 7+4
*/
int k = 1; //记录每行启始数
int l = 2; //记录每行启始递增增量
int m = 0; //记录每行每次递增增量
int n = 0; //记录每行每次递增结果
for(int i = 0; i < 5; i++) //外层循环5次
{
for(int j = i+1; j <=5; j++) //内层循环(i+1)~5次,外层每循环一次内层循环次数递减1
{
if(j==i+1){
m=l;
k+=i;
n=k;
System.out.print(k+" ");
}else{
n+=m;
System.out.print(n+" ");
m++;
}
}
l++;
System.out.println("");
}
}


//第二种从后向前计算的。。。。
public static void main(String[] args) {
/*
1 3 6 10 15 0 (i+1) 1+0
2 5 9 14 1 (i+1) 1+1
4 8 13 2 (i+2) 2+2
7 12 3 (i+4) 4+3
11 4 (i+4) 7+4
*/

for(int i = 15,j=1;i>= 11; i--,j++) //外层循环5次
{
int m = 5;
String n = "";
int l = i;
for(int k=j; k<=5; k++)
{
if(k==j){
n=l+" ";
}else{
l = l - m;
n=l+" "+n;
m--;
}
}
System.out.println(n);
}
}

//第三种是对第二种的简化版
public static void main(String[] args) {
/*
1 3 6 10 15 0 (i+1) 1+0
2 5 9 14 1 (i+1) 1+1
4 8 13 2 (i+2) 2+2
7 12 3 (i+4) 4+3
11 4 (i+4) 7+4
*/
for(int i = 15;i>= 11; i--) //外层循环5次
{
int m = i;
String n = "";
for(int k=5; k>=(15-i)+1; k--)
{
n=m+" "+n; //向前追加字符串

m=m-k; //衰减

}
System.out.println(n);//输出一行
}
}

我觉得你的题有点儿问题,因为比如说我想输出5到10之间的数,而数列里有两个5,两个10,无法确定到底是哪两个数之间的数。

我写了个程序,是输入这个数列中相邻的两个数,判断这两个数的位置。供你参考

#include <stdio.h>
#include <stdlib.h>

// 下面是全排列
// 13  1  12  2  11  3  10  4  9  5  8  6  7  7  6  8  5  9  4  10  3  11  2  12  1  13
//  1  2   1  2   1  2   1  2  1  2  1  2  1  2  1  2  1  2  1   2  1   2  1   2  1   2
// 上面是分成两组后的序号,1对应m,2对应n
//  1  2   3  4   5  6   7  8  9 10 11 12 13 14 15 16 17 18 19  20 21  22 23  24 25  26
// 上面是排序的总序号

int main(void)
{
    int m, n, m_ran, n_ran;
    printf("Type in the first number: ");
    scanf("%d", &m);
    printf("Type in the second number: ");
    scanf("%d", &n);
    int m_ini = 14, n_ini = 1;
    if(m > n)
    {
        if(m % 2 == 1 && n % 2 == 1 || m % 2 == 0 && n % 2 == 0)
        {
            m_ran = (m_ini - m) * 2 - 1;
            n_ran = m_ran + 1;
            printf("%d ranks No. %d.
", m, m_ran);
            printf("%d ranks No. %d.
", n, n_ran);
        }
        else
        {
            m_ran = m * 2;
            n_ran = m_ran + 1;
            printf("%d ranks No. %d.
", m, m_ran);
            printf("%d ranks No. %d.
", n, n_ran);
        }
    }
    else if(m < n)
    {
        if(m % 2 == 1 && n % 2 == 0 || m % 2 == 0 && n % 2 == 1)
        {
            m_ran = m * 2;
            n_ran = m_ran + 1;
            printf("%d ranks No. %d.
", m, m_ran);
            printf("%d ranks No. %d.
", n, n_ran);
        }
        else
        {
            n_ran = n * 2;
            m_ran = n_ran - 1;
            printf("%d ranks No. %d.
", m, m_ran);
            printf("%d ranks No. %d.
", n, n_ran);
        }

    }
    else if (m == 7 && n == 7)
    {
        printf("7(1st) ranks No. 13.
");
        printf("7(2nd) ranks No. 14.
");
    }
    else
        printf("Your numbers are not sequential or existing in the array.
");

    return 0;
}

比如输入5和9,



对的
二维数组,3行4列


荔蒲县18611291843: 键盘输入10个整数,将10个整数逆序输出 -
掌晨全泽: /* 请输入第1个数 : 1 请输入第2个数 : 2 请输入第3个数 : 3 请输入第4个数 : 4 请输入第5个数 : 5 请输入第6个数 : 6 请输入第7个数 : 7 请输入第8个数 : 8 请输入第9个数 : 9 请输入第10个数 : 10 10 9 8 7 6 5 4 3 2 1 Press any key to ...

荔蒲县18611291843: 从键盘上接受10个数,求和.要求: (1)、先提示“请输入第1个数:” ,输入第一个数后再提示“请输入第2 -
掌晨全泽: /* Note:Your choice is C IDE */#include "stdio.h" void main() { int i,x,sum=0; for(i=1;i<11;i++) { printf("请输入第%d个数",i); scanf("%d",&x); sum=sum+x;} printf("经计算,这十个数之内和是容:%d",sum); }

荔蒲县18611291843: javascript简易计算器请输入第一个数字请输入第二个数字相加相减相乘相除求 -
掌晨全泽: [java] view plain copy<pre class="java" name="code">/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9...

荔蒲县18611291843: 编写一个程序,要求:运行程序后,在屏幕上出现“请输入两个数字:”,如输入“1,2”,回车后,屏幕出现3 -
掌晨全泽: #includemain(){ int a,b; printf("请输入两个数字:"); scanf("%d,%d",&a,&b); printf("%d",a+b); }

荔蒲县18611291843: 设计一个程序,要求输入三个整数,能求出其中最大的数并输出 -
掌晨全泽: /* 请输入第1个数 : 12 请输入第2个数 : 98 请输入第3个数 : 10 最大的数是 : 98*/#include <stdio.h> int main() { int i,n,max = -65535; for(i = 0; i < 3; ++i) { printf("请输入第%d个数 : ",i + 1); scanf("%d",&n); if(n > max) max = n; } printf("最大的数是 : %d\n",max); fflush(stdin); getchar(); return 0; }

荔蒲县18611291843: 用if语句输入三个数 求最大和最小值java程序 -
掌晨全泽: public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num1 = 0;int num2 = 0;int num3 = 0;int max = 0;int min = 0;System.out.println("请输入第一个数字");num1 = scan.nextInt();System.out.println("请...

荔蒲县18611291843: 怎么在excel一个单元格内输入上下2个数字?????????????? -
掌晨全泽: 输入第一个数字,按Alt+回车,输入第二个数字

荔蒲县18611291843: vf计算最大值的问题clearinput "请输入第一个数字:" to a input "请输入第二个数字:" to b input "请输入第三个数字:" to c if a>=bif a>=c?"最大值... -
掌晨全泽:[答案] *程序这样看就好多了.. if a>=b &&在a>=b的时候,这是总前提 if a>=c &&如果a>=c ?"最大值:",a &&即a最大 ,因为大于a和c else &&意是条件不满足a>=c,那么就是a

荔蒲县18611291843: 在excel,输入第一个数字和第二数字,结果自动出来?
掌晨全泽: 就打第一个数字,然后接着打它正下方或正右方的第二个数字,然后选中这两个数,鼠标移到选中的框的右下角出现一个黑色十字,然后你想要哪一列/行就拉就行了

荔蒲县18611291843: (1) 编写程序实现:输入三个数a,b,c,要求按由大到小的顺序输出. -
掌晨全泽: #include#include void main() { int a,b,c,x,y,z; printf("请依次输入a,b,c:"); scanf("%d,%d,%d",&x,&y,&z); if(x>y&&y>z) a=x,b=y,c=z; if(x>z&&z>y); a=x,b=z,c=y; if(y>x&&x>z) a=y,b=x,c=z; if(y>z&&z>x) a=y,b=z,c=x; if(z>x&&x>y) a=z,b=x,c=y; if(z>y...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网