程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 單元加,單元式幕牆sgp加工

單元加,單元式幕牆sgp加工

編輯:關於C語言

單元加,單元式幕牆sgp加工


 

已知輸入整數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",n);
//  }
//  else
//    printf("%d+%d\n",i,n);
//}
//}
void divide(int i,int n)
{
    printf("%d",i);
    for(int j=0;j<t;j++)
    {
        printf("+%d",i);    
    }
    printf("+%d\n",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\n",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\n",i,t);
        }
        else{
            printf("%d\n",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;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved