c語言整數分解
A. c語言如何拆分數字
小弟有這么一種做法,我覺得這個比較快一點。寫得不是很好,你看版下先啦!
#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
char a[30];
int i,l;
printf("請輸入權一整型數字:");
gets(a);
printf("數字拆分如下:\n");
l=strlen(a);
for(i=0;i<l;i++)
printf("%d ",a[i]-'0');//將數字字元轉為數字值
printf("\n");
}
你看一下,還可以的話,麻煩你點贊我,Thank you。
B. c語言 求整數位分解
|
#include<stdio.h>
voidsplit(inta){
//輸出來百位源
printf("%d",a/100);
printf("");
//輸出十位
printf("%d",(a%100)/10);
printf("");
//輸出個位
printf("%d",a%10);
}
intmain(){
inta;
scanf("%d",&a);
//判斷輸入數字的合法性。
if(a<100||a>999){
printf("errornumber!");
return0;
}
//數字分割
split(a);
return0;
}
C. c語言將一個正整數分解質因數,望高手幫我詳細解釋一下程序
代碼:
#include <stdio.h>
void main()
{
int n,i;
printf("請輸入一個正整數");
scanf("%d",&n);
printf("%d=",n);
for( i = 2;i <= n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d ",n);
}
方法二、
(3)c語言整數分解擴展閱讀:
scanf用法:
輸出的值只是空格前面的字元是因為scanf函數的輸入格式錯誤,輸入參數的變數前需要加&。
scanf("%s",s);改為scanf("%s",&s);
scanf的用法是:scanf("格式控制字元串",輸入參數一,輸入參數二);
格式控制字元串包含:格式控制說明,普通字元。
1、格式控制字元串表示輸入的格式,(int型用%d,float用%f,double型用%lf)
2、普通字元:在輸出數據的時候,按照原樣輸出的字元,如:"fahr=%d,celsius=%d "中的fahr=,celsius=。
3、輸入的參數是變數的地址,所以要在變數前面加&。
D. c語言如何將一個正整數分解成質因數
#include<stdio.h>
voidmain()
{
inta,n;
scanf("%d",&n);
printf("n=");
for(a=2;a<=n;a++)
if(n%a==0)
{n/=a;
printf("%d",a);
printf("*");
a=1;}
}
輸入編碼即可。
E. 如何用C語言拆分整數
將一個整數的各個位分離出來的最簡單方法就是模10,取個位數,直到該變為0。
參考代碼:
#include<stdio.h>
voidmain()
{
intn=0;
scanf("%d",&n);
do{
printf("%d ",n%10);//每次輸出個位
n/=10;//縮小10倍,去除原來的個位。
}while(n);
}
但這整拆分的特點是從後向前輸出每一位數。
如果僅是為了輸出,還想正向輸出每一位數,則可用遞歸函數來解決。(也可以實現逆向輸出)
參考代碼:
#include<stdio.h>
voidsplit_int(intn)
{
if(n>0)
{
//printf("%d ",n%10);//逆向輸出,放開這里,關閉下面的printf().即:先輸出當前個位,再去高位的數
split_int(n/10);//先去輸出高位的數
printf("%d ",n%10);//再輸出當前的個位數
}
}
voidmain()
{
intn;
scanf("%d",&n);
split_int(n);
}
如果想把分離開的數據存儲到數組中,則最簡單的方法是將整數用sprintf()存儲到字元數組中,然後,遍歷數組,逐位取出。
參考代碼:
#include<stdio.h>
voidmain()
{
intn,i;
charstr[20];
scanf("%d",&n);
sprintf(str,"%d",n);
for(i=0;str[i];i++)//正向輸出
printf("%c ",str[i]);
for(i--;i>=0;i--)//逆向輸出
printf("%c ",str[i]);
}
F. c語言如何拆分數字
小弟有這么一種做法,我覺得這個比較快一點。寫得不是很好,你看下先啦!
#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
char a[30];
int i,l;
printf("請輸入專一整型數字:");
gets(a);
printf("數字拆分如下屬:\n");
l=strlen(a);
for(i=0;i<l;i++)
printf("%d ",a[i]-'0');//將數字字元轉為數字值
printf("\n");
}
你看一下,還可以的話,麻煩你點贊我,Thank you。
G. 將一個整數分解成幾個連續整數的和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下編譯通過。
H. 關於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
I. c語言數字拆分
1、直接以字元串的形式讀入數據,然後以字元數組的形式挨個拆分每位數字即可。
2、例專程:
#include
#include
int main()
{
char a[30];
int i,l;
printf("請輸入一屬整型數字:");
gets(a);
printf("數字拆分如下:\n");
l=strlen(a);
for(i=0;i
評論
0
0
0
載入更多
J. C語言如何把一個數分解
#include<stdio.h> void f(int x) { while(x) { printf("%d ",x%10); x=x/10; } } void main() { f(568); } 這是逆序輸出,要順序輸出 用一個數組回保存再輸出就行了答