文件需要在Visual C++ 6.0环境下运行
文件包含:
VRE3.0安装说明
VRE3.0联发科技首届校园软件大赛专用版安装文件
VRE IDE入门指南
VRE图形库开发指南
VRE开发者FAQ
下载地址:http://www.eepw.com.cn/event/action/mediatek2010/material.html
#include<stdio.h>
#include<stdlib.h>
#include<sys/timeb.h>
#define MAX 50 //不宜过大
int *a,rear,sum,count,n;
int prin()
{
if(rear<0)return 0;
printf("Answer%4d: %d=",count++,n);
for(int i=0;i<rear;i++)//<int i=0;>放进for里面 用C与C++程序设计学习与实验系统 2010编译会报错
printf("%d+",a[i]);
printf("%d\n",a[rear]);//printf("%d\n",a[i]);//在Dev C++中会报错
return 1;
}
int judge(int m)
{
if(sum+m>n) //分解失败
{
rear--;
sum-=a[rear];
return 1;
}
else if(sum+m==n)//分解成功
{
a[rear]=m;
prin();
rear--;
sum-=a[rear];
return 1;
}
else //可继续分解
{
a[rear++]=m;
sum+=m;
return 0;
}
}
void processing(int m)
{
int i=m;
while(i<=n&&rear>=0)
{
if(judge(i))
{
i=a[rear]+1; //processing(i);
}
}
}
int initializing()
{
if(n<1||n>MAX)
{
printf("The integer you inputed just now is ineffective!\n");
return 1;
}
if(!(a=(int*)malloc(n*sizeof(int))))return 1;//忘记乘以n当n>6就会出现错误
for(int i=0;i<n;i++)a[i]=0;
sum=rear=0;
count=1;
return 0;
}
int main()
{
timeb t1,t2;//结构体
long t;
printf("请输入要分解的正整数{N<=50}!\nN=");//MAX
scanf("%d",&n);
if(initializing())return 0;
printf("\tAFTER PROCESSING!\n");
ftime(&t1);//求得当前时间
processing(1);
ftime(&t2);//求得当前时间
t=(t2.time-t1.time)*1000+(t2.millitm-t1.millitm);//t.time以秒为单位,t.millitm以毫秒为单位
printf("The integer \"%d\" can be devided into <%d> equations!\nThe cost of time is %ld millitm(毫秒)!\n",n,count-1,t);
system("pause");
return 1;
}
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |