c语言趣味百例精解
且_听_风_吟
2018年至今java后端,spring boot 、cloud项目设计管理,微服务开发模式下的高并发和分布式整体架构研究。
2015-2017年主要做传统java web ssh服务,传统的集群、分布式架构设计。
了解前端、安卓开发;
展开
-
参观地点
/*某参观团按以下条件限制从A、B、C、D、E五个地方中选若干参观点:1)如去A,则必须去B;2)D、E两地只能去一地;3)B、C两地只能去一地;4)C、D两地都去或都不去;5)若去E地,A、D也必去。问该团最多能去哪几个地方?*/#include"stdio.h"#include"stdlib.h"#include"time.h"int main(){in原创 2013-05-15 16:46:08 · 1661 阅读 · 0 评论 -
分橘子问题
/* Note:Your choice is C IDE */#include "stdio.h"#include"stdlib.h"void main(){int father=2520;// int a[6],i;//a存储之前六人状态,b存储之后的状态 float b[6],temp; for(a[0]=8;a[0] for原创 2013-04-30 21:54:03 · 1134 阅读 · 0 评论 -
三天打鱼两天晒网问题
中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。*问题分析与算法设计根据题意可以将解题过程分为三步:1)计算从1990年1月1日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在“打鱼”还是在“晒网”;若余数为1,2,原创 2012-08-12 11:27:37 · 1326 阅读 · 0 评论 -
求出所有的1/k=1/x+1/y的情况
//输入正整数k,求出所有的1/k=1/x+1/y的情况,其中正整数x>=y;//由数学知识可以求出y的范围#include"stdio.h"#include"stdlib.h"void main(){int k,y,n=0;scanf("%d",&k);for(y=k+1;yif((k*y%(y-k))==0){printf("\n1/%d=1/%d+1/%d原创 2013-04-04 17:24:54 · 2357 阅读 · 5 评论 -
回形方阵问题
/*回型方阵输入首字符和高后,输出如图所示回型方阵。A A A A A A B B B A A B C B A A B B B A A A A A A */#include#include"stdlib.h"#include"math.h"int small(int i,int j){if(i>j) return j;else return原创 2013-04-11 18:23:34 · 2410 阅读 · 0 评论 -
从1到20个数字排成一圈,每两个相邻数字之和为一个素数
//从1到20个数字排成一圈,每两个相邻数字之和为一个素数#include"stdio.h"#include"stdlib.h"int zhongshu=0;//统计总数int shusu(int b[20]){int k=1; for(int i=0;ib[i]=0;//全部初始化为0b[0]=2;for(int i=3,j=2;i{ for(j=2;j原创 2013-04-16 15:59:27 · 2214 阅读 · 0 评论 -
求出abcde/fghij=n的所有情况,其中,a~j为0~9的一个排列
//输入一个2//下面的一些没用使用的代码可以看做是我思考时候的一些思路#include"stdio.h"#include"stdlib.h"void main(){int notaaa(int a[],int t,int y);int a[10],k,n=0,c[150][10],cur1=-1,cur2;//c数组用来保存每一次的结果然后排序输出,cur用来排序循环用原创 2013-04-04 12:13:02 · 2710 阅读 · 0 评论 -
自守数问题,即n^2的结果的末尾仍然是n
#include"stdio.h"#include"stdlib.h"int main(){long int i,k,k1,k2,k3,mul; for(i=0;i {mul=0;k3=1; while(i/k3>0) k3=k3*10; for(k=1;i/k>0;k=k*10) { k1=i%(k3/k);//从首位尾依次到末位,其中首位依次减少原创 2013-04-11 18:17:18 · 776 阅读 · 0 评论 -
四位可逆素数
//求四位的可逆素数#include"stdio.h"#include"stdlib.h"int main(){int a[9000];//建立一张素数的表int i,j,k,l=0,num=0;for( i=1000;i{int key=1;//key等于1时表示是素数 for(j=2;j { if(i%j==0){ key=0; break;} } if原创 2013-04-16 15:44:34 · 2692 阅读 · 0 评论 -
请找出十个最小的连续自然数,它们个个都是合数(非素数)
//请找出十个最小的连续自然数,它们个个都是合数(非素数)#include"stdio.h"#include"stdlib.h"int main(){int k=0;//用于计数for(int i=2;i{ int key=1;//用于判断素数的标识,key=1的时候是素数for(int j=2;jif(i%j==0){key=0; break; }if(!ke原创 2013-04-16 15:50:03 · 2843 阅读 · 0 评论 -
4X4可逆素数幻方
//求四阶的素数幻方。即在一个4X4 的矩阵中,每一个格填入一个数字,使每一行、每一列和两条对角线上的4个数字所组成的四位数,均为可逆素数。//求四位的可逆素数#include"stdio.h"#include"stdlib.h"int zz=0;int quzhi(int *a,int k)//将k分解成4位存在a中{a[0]=k/1000;a[1]=k/100%10原创 2013-04-26 10:42:34 · 1995 阅读 · 0 评论 -
1898–要发就发
/*“1898–要发就发”。请将不超过1993的所有素数从小到大排成第一行,第二行上的每个素数都等于它右肩上的素数之差。编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假好存在的话,又有几种这样的情况?第一行:2 3 5 7 11 13 17……1979 1987 1993第二行:1 2 2 4 2 4…… 8 6首先从数学上分析该问题:假设第一行中原创 2013-04-16 16:43:58 · 3818 阅读 · 0 评论 -
求(ab+cd)*(ab+cd)=abcd的四位数
//求(ab+cd)*(ab+cd)=abcd的四位数#include"stdio.h"#include"stdlib.h"int main(){int a,b;for(a=10;afor(b=0;bif(a*100+b==(a+b)*(a+b))printf("%d\n",a*100+b);system("pause");}原创 2013-04-16 15:52:34 · 3086 阅读 · 2 评论 -
谁在说谎
张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?*问题分析与算法设计分析题目,每个人都有可能说的是真话,也有可能说的是假话,这样就需要对每个人所说的话进行分别判断。假设三个人所说的话的真假用变量A、B、C表示,等于1表示该人说的是真话;等于0表示这个人说的是假话。由题目可以得到:*张三说李四在说谎:张三说的是真话(那么李四确实转载 2013-05-15 16:52:17 · 1629 阅读 · 0 评论 -
比较两个分数的大小
/*比较两个分数的大小。*问题分析与算法设计人工方式下比较分数大小最常用的方法是:进行分数的通分后比较分子的大小。可以编程模拟手式方式。#include"stdio.h"#include"stdlib.h"#include"time.h"long int gongbeishu(int a,int b)//求最小公倍数{int temp;int k1=a,k2=b;while原创 2013-05-14 21:33:16 · 4894 阅读 · 0 评论 -
将真分数分解为埃及分数
/*将真分数分解为埃及分数古埃及人所指的分数,其分子必等于1,例如:1/2、1/3、1/4。我们称这些分子等于1的分数为“埃及分数”。现输入一个真分数,请将该分数分解为埃及分数之和。如:8/11=1/2+1/5+1/37+1/4070。*问题分析与算法设计其实分法有多种,比如刚才的8/11,还可以分为8/11=1/2+1/5+1/55+1/110。但是我们规定一下分解原则:给定一个原创 2013-05-14 22:24:49 · 6139 阅读 · 1 评论 -
谁是窃贼
/*公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说:“乙没有偷,是丁偷的。”乙说:“我没有偷,是丙偷的。”丙说:“甲没有偷,是乙偷的。”丁说:“我没有偷。”请根据这四人的答话判断谁是盗窃者。*问题分析与算法设计假设A、B、C、D分别代表四个人,变量的值为1代表该人是窃贼。由题目原创 2013-05-15 18:00:09 · 1469 阅读 · 0 评论 -
黑与白
/*52.黑与白有A、B、C、D、E五人,每人额头上都贴了一张黑或白的纸。五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,A说:“我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。”B说:“我看见其它四人额头上贴的都是黑纸。”C说:“我看见一人额头上贴的是白纸,其它三人额头上贴的是黑纸。”D说:“我看见四人额头上贴的都是白纸。”E什么也没说。现在已知额转载 2013-05-15 18:10:25 · 1032 阅读 · 0 评论 -
谜语博士的难题--两面族
/*两面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替。如果第一句为真,则第二句是假的;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有规律。谜语博士遇到三个人,知道他们分别来自三个不同的民族:诚实族、说谎族和两面族。三人并肩站在博士前面。博士问左边的人:“中间的人是什么族的?”,左边的人回答:“诚实族的”。博士问中间的人:“你是什么族的?”,中间的人回答原创 2013-05-15 20:47:53 · 3214 阅读 · 1 评论 -
博士遇到三个人--诚实族,两面族,说谎族
/*谜语博士遇到三个人,便问第一个人:“你是什么族的?”,回答:“诚实族的。”问第二个人: “你是什么族的?”答:“说谎族的。”博士又问第二个人:“第一个人真的是诚实族的吗?”,答:“是的。”问第三个人:“你是什么族的?”答:“诚实族的。”博士又问第三个人:“第一个人是什么族的?”,答:“两面族的。”请判断这个人到底是哪个民族的?(答案:第一个人是诚实族的,第二个人是两面族的,第三原创 2013-05-15 22:13:28 · 2374 阅读 · 0 评论 -
子序列的最大乘积问题
//输入n个元素组成的序列S,找出最大的一个连续子序列,若乘积为正输出结果,否则输出-1(表示无解)//1=#include"stdio.h"#include"stdlib.h"void main(){int n,s[20],a[20],cur;long int k,w=0;printf("请输入您要输入的元素的个数:\n");scanf("%d",&n);pr原创 2013-04-04 11:26:07 · 951 阅读 · 0 评论 -
孪生素数
//孪生素数,a和a+2皆为素数#include"stdio.h"#include"stdlib.h"int main(){int a[1001];//建立一张素数的表int i,j;for( i=2;i{int key=1;//key等于1时表示是素数 for(j=2;j { if(i%j==0){ key=0; break;} } if(key){ a[原创 2013-04-16 15:42:04 · 817 阅读 · 0 评论 -
哥德巴赫猜想,2000以内的正偶数分解为两个素数之和
//哥德巴赫猜想,2000以内的正偶数分解为两个素数之和#include"stdio.h"#include"stdlib.h"int main(){int i,j,k,a[1000],n=0;//用数组a存储2000以内的所有素数,n表示素数的个数for(i=2;i{int key=1;//key=1的时候表示是素数 for(j=2;j if(i%j==0)原创 2013-04-16 15:47:38 · 3605 阅读 · 0 评论 -
n个人围成一圈,凡报到3的人退出
/*有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。*/#include"stdio.h"#include"stdlib.h"int main(){int i,j,k,n,a[1000];i=k=0; j=1;scanf("%d",&n);for(i;ia[i]=i+1;i=0;whi原创 2013-04-30 22:50:33 · 1249 阅读 · 0 评论