题:输入一个数,列出所有加和等于该数的式子。

分析:

以 6 为例:

从上面的分析就比较容易找到规律了。

C语言代码:

 #include <stdio.h>

 int main()
{
int n; // 输入的数
printf("Please input the number:");
scanf("%d",&n);
test(n);
} void test(int n)
{
if(n==){
printf("1=1\n");
return;
}
int i,j,k; // 循环变量
for(i=;i<=n/;i++)
{
for(j=(n-i);j>=i;j--)
{
printf("%d",i);
for(k=;k<(n-i-j);k++)
{
printf("+1");
}
printf("+%d=%d\n",j,n);
}
}
}

这是同学去面试的时候,给的一道上机题,刚看到我就想用递归(当然,没有做出来),所以……for循环大法好(^_^)

上面的是错的,心痛,这个应该是对的吧,缺点就是只能正常输出20以内的,数组变成指针会好些??

 #include <stdio.h>
int main()
{
int num;
int i,j,k,p,q,r;
int flag=;
int a[];
int temp=;
printf("Please input the number:");
scanf("%d",&num);
for(i=;i<=num;)
{
if(flag)
{
for(j=;j<i;j++) a[j] = ;
a[i-] = num-(i-);
flag = ;
for(j=;j<i;j++)
{
if(j==) printf("%d",a[j]);
else printf("+%d",a[j]);
}
printf("=%d\n",num);
}
if(!flag)
{
for(p=;p<=i;)
{
for(k=i-;k>;k--)
if((k-p+)>= && a[k]-a[k-p+]>=)
{
for(q=k;q>=k-p+;q--) temp += a[q];
a[k-p+]++;
for(r=k-p+;r<k;r++) a[r]=a[k-p+];
a[k] = temp - (p-)*a[k-p+];
temp=;
for(j=;j<i;j++)
{
if(j==) printf("%d",a[j]);
else printf("+%d",a[j]);
}
printf("=%d\n",num);
break;
}
if(k==) p++;
}
flag=;
}
if(flag) i++;
}
return ;
}

一道面试题(C语言)的更多相关文章

  1. 一道面试题:按照其描述要求用java语言实现快速排序

    回来想了想,写出了如下的程序: /** * 一道面试题,按照其描述要求进行快速排序(英文的,希望理解是对的..) * 要求:和一般的快速排序算法不同的是,它不是依次交换pivot和左右元素节点(交换2 ...

  2. 一道面试题让你与JS更近一步

    这是一道面试题, 请先思考,在看讲解 :) var param = 1; function main() { console.log(param); var param = 2; console.lo ...

  3. 一道笔试题和UML思想 ~

    一句软件工程界的名言,让我想起了一个和一道笔试题有关的故事.希望更多的人了解 UML 背后的思想比他的语法更重要,是笔者写作本文的一点小愿望. 一.从一句软件工程名言说起 对很多事情的处理上,东西方都 ...

  4. 【死磕JVM】一道面试题引发的“栈帧”!!!

    前言 最近小农的朋友--小勇在找工作,开年来金三银四,都想跳一跳,找个踏(gao)实(xin)点的工作,这不小勇也去面试了,不得不说,现在面试,各种底层各种原理,层出不穷,小勇就遇上了这么一道面试题, ...

  5. PHP递归创建多级目录(一道面试题的解题过程)

    今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...

  6. 关于Java类加载双亲委派机制的思考(附一道面试题)

    预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面 ...

  7. 一道面试题比较synchronized和读写锁

    一.科普定义 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用, ...

  8. <转>一道面试题比较synchronized和读写锁

    一.科普定义(原文:http://903497571.iteye.com/blog/1874752) 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步 ...

  9. 一道面试题与Java位操作 和 BitSet 库的使用

    前一段时间在网上看到这样一道面试题: 有个老的手机短信程序,由于当时的手机CPU,内存都很烂.所以这个短信程序只能记住256条短信,多了就删了. 每个短信有个唯一的ID,在0到255之间.当然用户可能 ...

  10. Java中有关构造函数的一道笔试题解析

    Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...

随机推荐

  1. BOM (字节顺序标记)

    BOM(Byte Order Mark):字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码. 注:计算机内部数据存储都是二进制的,只有知道一段数据的二进制存储 ...

  2. python_09 文件处理流程,文件操作方法

    文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 f=open('test.txt',encoding='gbk') data = f.read() ...

  3. cmd创建文件命令

    一.建立空文件的几种方法 1.cd.>a.txt cd.表示改变当前目录为当前目录,即等于没改变:而且此命令不会有输出. >表示把命令输出写入到文件.后面跟着a.txt,就表示写入到a.t ...

  4. maven学习-基本入门用法

    一.下载及安装 1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本 ...

  5. 在delphi中XLSReadWriteII.组件的应用实例(2)

    第三方组件:XLSReadWriteII.v.5.20.67_XE3 实例源码如下:   unit Unit1; interface uses Winapi.Windows, Winapi.Messa ...

  6. Linux下安装Anaconda

    Anaconda官方下载地址: https://www.anaconda.com/download/ >>bash xxxxxx.sh >>reboot >>sud ...

  7. easyui改变tab标题

    截图:   代码: //更改tab的标题 var tab = $('#microAppVersionTabs').tabs('getTab',0);// 取得第一个tab $('#microAppVe ...

  8. python动态模块导入

    首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py 官方推荐: import importlib aa = importlib.import_module('lib.aa') c = ...

  9. Django model进阶

    Django-model进阶   QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Ent ...

  10. Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址

    本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子  只要在不同的路由器上可以重复 外 ...