一道面试题(C语言)
题:输入一个数,列出所有加和等于该数的式子。
分析:
以 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语言)的更多相关文章
- 一道面试题:按照其描述要求用java语言实现快速排序
回来想了想,写出了如下的程序: /** * 一道面试题,按照其描述要求进行快速排序(英文的,希望理解是对的..) * 要求:和一般的快速排序算法不同的是,它不是依次交换pivot和左右元素节点(交换2 ...
- 一道面试题让你与JS更近一步
这是一道面试题, 请先思考,在看讲解 :) var param = 1; function main() { console.log(param); var param = 2; console.lo ...
- 一道笔试题和UML思想 ~
一句软件工程界的名言,让我想起了一个和一道笔试题有关的故事.希望更多的人了解 UML 背后的思想比他的语法更重要,是笔者写作本文的一点小愿望. 一.从一句软件工程名言说起 对很多事情的处理上,东西方都 ...
- 【死磕JVM】一道面试题引发的“栈帧”!!!
前言 最近小农的朋友--小勇在找工作,开年来金三银四,都想跳一跳,找个踏(gao)实(xin)点的工作,这不小勇也去面试了,不得不说,现在面试,各种底层各种原理,层出不穷,小勇就遇上了这么一道面试题, ...
- PHP递归创建多级目录(一道面试题的解题过程)
今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...
- 关于Java类加载双亲委派机制的思考(附一道面试题)
预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面 ...
- 一道面试题比较synchronized和读写锁
一.科普定义 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用, ...
- <转>一道面试题比较synchronized和读写锁
一.科普定义(原文:http://903497571.iteye.com/blog/1874752) 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步 ...
- 一道面试题与Java位操作 和 BitSet 库的使用
前一段时间在网上看到这样一道面试题: 有个老的手机短信程序,由于当时的手机CPU,内存都很烂.所以这个短信程序只能记住256条短信,多了就删了. 每个短信有个唯一的ID,在0到255之间.当然用户可能 ...
- Java中有关构造函数的一道笔试题解析
Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...
随机推荐
- ElasicSearch(3) 安装elasticsearch-head
https://github.com/mobz/elasticsearch-head 1.git install git 2.git clone git://github.com/mobz/elast ...
- UI5-学习篇-17-云端WEB IDE开发
1.前提条件 SAP云平台账号已申请 云连接器设置完成:UI5-学习篇-15-云连接SAP Cloud Connector 云平台Destination设置完成:UI5-学习篇-16-云端SCP-De ...
- POI richText和html的转换案例
private XSSFRichTextString parseHtmlStrToRichText(String htmlStr) { Document document = parseHtmlStr ...
- tensorflow读取本地MNIST数据集
tensorflow读取本地MNIST数据集 数据放入文件夹(不要解压gz): >>> import tensorflow as tf >>> from tenso ...
- tensorflow报错error,tf.concat Expected int32, got list containing Tensors of type '_Message' instead
参考:https://stackoverflow.com/questions/41813665/tensorflow-slim-typeerror-expected-int32-got-list-co ...
- 记账本,C,Github,结果
- jstat查看JVM GC情况
转自 https://www.cnblogs.com/yjd_hycf_space/p/7755633.html
- jQuery——检测滚动条是否到达底部
一.jQuery检测浏览器window滚动条到达底部 jQuery获取位置和尺寸相关函数:$(document).height() 获取整个页面的高度:$(window).height() ...
- CentOS开机报错:sd 0:0:0:0: [sda] Assuming drive cache: write through
解决方法: vim /etc/default/grub 文件里去掉 rhgb 参数. [root@lb-nginx- ~/]#vim /etc/default/grub GRUB_TIMEOUT= G ...
- IO高级应用关于字符码表
ASCII码表: 计算机里只有数字,我在计算机软件里的一切都是用数字来表示,屏幕上显示的一个个字符也不例外.计算机诞生在美国,最开始所用到字符就是我们现在键盘上的一些符号和少数几个特殊的符号,每一个字 ...