c語言整數拆分
① c語言如何將一個整數拆分成若干個奇數相加
#include<stdio.h>
#include<stdlib.h>
intstack[1000];
voiddfs(intn,intk,intmin)
{
if(n==0)
{
for(inti=0;i<k;i++)
{
if(i)putchar('+');
printf("%d",stack[i]);
}
putchar(' ');
}
else
{
for(inti=1;i<=n&&i<=min;i+=2)
stack[k]=i,dfs(n-i,k+1,i<min?i:min);
}
}
intmain()
{
dfs(10,0,9999);
}
第一個參數是要分解的數,第二個參數填0,第三個比要分解的數大即可
此版本沒有重復
② c語言中如何將偶數位整數等分截斷為兩個新的整數
思路:要想將偶數位整數等分截斷為兩個新的整數,首先需要求出該數的總長度,假設長度為2n。則前n為第一個整數,可以把原整數除以10的n次方求商得到;後n位為第二個整數,可以把原整數除以10的n次方求余得到。
參考代碼:
#include<string.h>
#include<stdio.h>
#include<math.h>
intfun(inta){
intn=0;
while(a){
n++;
a/=10;
}
returnn/2;
}
intmain()
{
inta,n,t;
scanf("%d",&a);
n=fun(a);
t=(int)pow(10,n);
printf("%d%d",a/t,a%t);
return0;
}
/*
輸出:
12345678
12345678
*/
③ 關於C語言用遞歸拆分整數
題目中要求如何對整數拆分呢?
這個是有遞推公式的:
(1)比較容易理解,把m個數劃分為 0<=k<=m個數的和,就是
1. 分k = m次,此時只有一種方法
2.分k <m次,此時的結果是 Chai(m, n-1);
(2)我借鑒了下面博客中的說法。
對於m >n的問題,可以看做把m個蘋果放到n個盤子上,有多少種分發。然後把這個問題分為兩個部分:
1.分完之後,個數最少的盤子中的蘋果數為0.
2.分完之後,個數最少的盤子中的蘋果數不為0.
然後
1.就對應著,讓其中的一個盤子為空,其他的就轉化為把m個蘋果放在n-1個盤子問題,也就是Chai(m, n-1)
2.也就是對這個,先在n個盤子上都放一個(保證他們都不為空),然後其他的就轉化為,在n個盤子上,放m-n個蘋果的問題:Chai(m-n, n);
http://blog.csdn.net/clearriver/article/details/4604247
④ c語言怎樣分離小數與整數
c語言中要分離小數與整數,可以使用以下的代碼,將一個帶小數分離出整數部分和純小數部分:
double a=3.14,b;
int c;
c=a;
b=a-c;
printf("c=%d b=%g\n",c,b);
⑤ C語言將一個4位數拆分成4個個位數
1、首先在電腦桌面上打開vc++軟體。
⑥ C語言中 將一個3位數整數,正確分離出它的個位、十位和百位數字,並分別在屏幕上輸出
3位數整數正確分離的屏幕上輸出源代碼如下:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char a[10];
gets(a);
int l=strlen(a);
for(int i=l-1;i>=0;i--)
{
cout<<a[i]<<" ";
}
return 0;
}
(6)c語言整數拆分擴展閱讀
C語言程序結構的特點
1、一個程序有一個或多個源程序文件組成。
在一個源程序文件中可以包含三個部分:預處理指令、全局聲明、函數定義。
2、函數是C程序的主要組成部分。
一個C語言程序有一個或多個函數組成,其中必須包含一個main函數(且只能有一個main函數),編寫C程序的工作主要就是編寫一個個函數。
3、函數體即函數首部花括弧內的部分。包括聲明部分和執行部分,聲明部分包括定義在本函數中所用到的變數,執行部分由若干個語句組成,指定在函數中所進行的操作。
⑦ 將一個整數分解成幾個連續整數的和C語言做法
#include
<stdio.h>
int
main(void)
{
int
n;
scanf("%d",
&n);//
輸入
printf("\n\n%d=\n",
n);
for(int
n1=1;
n1<=n/2;
n1++)//
n1為等差數列第一項
{
for(int
n2=n1+1;
n2<n;
n2++)//
n2為等差數列最後一項
{
if((n1+n2)*(n2-n1+1)
==
n*2)//
用等差數列公式算和
{
//如果相等就輸出結果
for(int
t=n1;
t<n2;
t++)
{
printf("%d+",
t);
}
printf("%d\n",
t);
}
}
}
return
0;
}
vc6下編譯通過。
⑧ c語言數位拆分,從鍵盤上輸入一個4位數的整數n,編寫程序將其拆分為兩個2位數的整數a和b
op沒有初始化,它不是+-*/中的任何一個,所以無顯示。
不要這些switch和case,就可以得到結果。
⑨ c語言中怎麼把一個實數分解成整數部分和小數部分
#include<stdio.h>
#include<math.h>
void main()
{
double F;
double a;//存放整數部分
double b;//存放小數部分
printf("請輸入一個浮點數:");
scanf("%lf",&F);
a=floor(F);
b=F-a;
printf("將該數分解後:\n");
printf("整數部分:%lf\n",a);
printf("小數部分:%lf\n",b);
}