VicoTas
Câu hỏi
avatar vip_kfc
21/06/2013 15:00

Phân tích số n thành tổng .Help me !!!

Mình có môt bài tập là phân tích một số thành tổng các số nhỏ hơn nó .
Ví dụ :n=4
1.1+1+1+1
2.1+1+2
3.1+3
4.2+2
5.4

Danh sách câu trả lời (4)
Thu Trang thutrang 21/06/2013 15:00
Bài bạn yêu cầu đây!!

#include
#include


int sum(int a[],int n)
{ int s=0;
for(int i=0;i {
s+=a;
}
return(s);
}
int t;

void addnum(int a[],int n,int num)
{
for(int j=1;j<=a[n-1];j++)
{
a[n]=j;
int s = sum(a,n);
if(s==num)
{

printf("\n %d = ",t);
for(int i=0;i {
printf("%d",a);
if(i {
printf("+");
}
}
break;
}

if(s {
n++;
addnum(a,n,num);
n--;
}

if(s>num)
{
break;
}


}

}
void analyzer(int num)
{
int a[100];
int n=0;
a[n++]=1;
while (a[0]<=num)
{
addnum(a,n,num);
a[0]++;
}
}

void main()
{
int num;
k:printf("\nNhap mot so bat ky: n= ");scanf("%d",&num);
if(num<1)
{
printf("\nKhong duoc choi xo nhau nha! De nghi nhap lai!!!");
goto k;
}
else
t=num;
analyzer(num);
getch();
}
Phương pebuon_8x 21/06/2013 15:00
có gì cần thảo luận hoặc mình có thể tìm ra cách khác trong thời gian gần đây liên hệ mình d_danh2002@yahoo.com
avatar duytuantn 21/06/2013 15:00
mình co code nhung ma vướng phải vét cạn và đệ quy chạy với số lớn mất thời gian
Đức Việt ducviet 21/06/2013 15:00
Thế này :

Bạn để ý dòng từ trên xuống dưới , bắt đầu là 1 và kết thúc là chính số đó . Bạn gom nhóm lần lượt từ sau ra phía trước . Dòng đầu tiên luôn là một dãy các số 1 - dĩ nhiên nếu số ban đầu là 0 hay số âm thì phải xét .

Ghi lại ví dụ của bạn nhé :
1. 1+1+1+1
2. 1+1+(1+1) - gom 2 số cuối của dòng 1
3. 1+(1+2) - 2 số cuối của dòng 2
4. 2+2 - Do dòng 3 chỉ có 2 số nên không thể gom 2 số cuối ( gom xong thành 4 mất rồi còn đâu ) , nên phải tăng số 1 đầu tiên lên 1 đơn vị
5. 4 - tương tự như dòng 4 ( nhưng do khi tăng 2 lên thành 3 thì nó bị trùng 3+1=1+3 ở trên nên loại )

have fun
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Máy vi tính
nophoto Hp-G60 drivers?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Làm ơn giúp em chọn máy tính với...

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Hỏi liên quan về BIOS và FAT 16

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Tại sao máy tính không nhận đĩa install Windows và boot Hiren ?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Máy bị treo!

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Hỏi về phần mềm Nanomedia Card 3.0.38

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Cho mình hỏi Intell core 2 duo va intell centrino thì cái nào tốt hơn?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Bác nào biết cứu dữ liệu giúp em với?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Để mua đc một bộ máy tính tốt ta phải lựa chọn sau?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

Phương Cho em hỏi về dòng máy tính xách tay

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

nophoto Hỏi cách cài chương trình cho laptop mini ?

Đăng lúc: 15:00 - 21/06/2013 trong Máy vi tính

lighting Cài Win và bị lỗi?

Đăng lúc: 20:18 - 22/06/2013 trong Máy vi tính

nophoto Tôi muốn chụp màn hình máy tính đang khởi động thì làm ntn?

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Tiếng bít bít....bít.....Làm sao bi giờ

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

MrTien Help me ! Xem phim với tv FULL HD ?

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Cách tải từ truyền hình cáp về máy tính?

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Xin các bác chỉ giáo về Chất lương và Dung lượng

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Xem thử PC chạy HD của em với....

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Thu truyền hình trên Latop thì nên mua cái gì ??

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

nophoto Làm thế nào để nối file

Đăng lúc: 14:59 - 21/06/2013 trong Máy vi tính

Rao vặt Siêu Vip