zoukankan      html  css  js  c++  java
  • 单元加

    已知输入整数14时,运行结果如下,试根据规律编写程序

    #include <stdio.h>
    int t;//标记i的重复次数
    //void divide(int i,int number)
    //{
    //int k,n=number;
    //while(n>i)
    //{
    //  n=n-i;
    //  if((n+i)!=number)
    //    {
    //      for(k=0;number-k>n;k=k+i)
    //          printf("%d+",i);
    //      printf("%d
    ",n);
    //  }
    //  else
    //    printf("%d+%d
    ",i,n);
    //}
    //}
    void divide(int i,int n)
    {
        printf("%d",i);
        for(int j=0;j<t;j++)
        {
            printf("+%d",i);    
        }
        printf("+%d
    ",n-i);
        if(n-i <= i)
        {
            return;
        }
        else{
            t ++;
            divide(i,n-i);    
        }
    }
    int main()
    {
        int n;
        printf("Input:");
        scanf("%d",&n);
        for(int i=1;i<=n/2;i++)
        {
            t = 0;
            divide(i,n);
        }
        return 0;
    }

    已知输入整数14时,运行结果如下,试根据规律编写程序

    //递归
    #include <stdio.h>
    int num(int a,int i,int n)
    {
        int j=0,k;
        if(a<=0)
            return a;
        k=num(a-i,i,n+i)+i;
        for(j=i;j<=n;j=j+i)
            printf("%d+",i);
        printf("%d
    ",k);
        return k;
    }
    int main()
    {
        int number,n;
        printf("input:");
        scanf("%d",&number);
        for(n=1;n<=number/2;n++)
            num(number-n,n,n);
        return 0;
    }
    //非递归
    #include <stdio.h>
    void divide(int i,int num,int n)
    {
        int t,flag = 0;//t:标记最尾的一个数
        if(n % i)
        {
            t = n % i;
            flag = 1;
        }
        else
            t = i;
        while(t < n)
        {
            for(int k = 0 ; k < num - 1; k ++)
            {
                printf("%d+",i);
            }
            if(flag)//不能整除
            {
                printf("%d+%d
    ",i,t);
            }
            else{
                printf("%d
    ",t);
            }
            t += i;
            num --;
        }
    }
    int main()
    {
        int n;
        printf("Input:");
        scanf("%d",&n);
        for(int i=1;i<=n/2;i++)
            divide(i,n/i,n);
        return 0;
    }
  • 相关阅读:
    java语言基础
    常用4种限流算法介绍及比较
    如何用Redis实现分布式锁
    翻转字符串
    JAVA之io流
    JAVA之Collections集合
    【转】IT行业岗位以及发展方向
    JAVA之字符串
    JAVA之数组
    Linux之判断字符串是否为空
  • 原文地址:https://www.cnblogs.com/emptyCoder/p/5188307.html
Copyright © 2011-2022 走看看