复试C语言常考趣味程序设计

合集下载

C语言趣味程序百例

C语言趣味程序百例

C语言趣味程序百例(1):绘制余弦曲线public class test1{public static void main(String args[]){double y;double x, m;for (y=1;y>-1;y-=0.1) {m= Math.acos(y) * 10;for (x = 1; x < m; x++)System.out.print(" ");System.out.print("*");for (; x < 62 - m; x++)System.out.print(" ");System.out.println("*");}}}C语言趣味程序百例(3):绘制圆public class test3{public static void main(String args[]) {double y;double x, m;for(y=10;y>=-10;y--){m=2*Math.sqrt(100-y*y);for(x=1;x<30-m;x++)System.out.print(" ");System.out.print("*");for(;x<30+m;x++)System.out.print(" ");System.out.println("*");}}}import java.util.*;public class test4{public static void main(String args[]){int max=0;int min=100;double sum=0;for(int i=1;i<=10;i++){System.out.printf("请输入第"+i+"个分数:\n");Scanner reader=new Scanner(System.in);int x=reader.nextInt();sum+=x;if(x> max) max=x;if(x< min) min=x;}System.out.println("无效的最高分和最低分:"+max+" , "+min);System.out.println("最后选手的得分是:"+(sum-max-min)/8.0);}}public class test5{public static void main(String args[]){for (int i=999;i>99;i--) {if (555555%i==0) {System.out.println("最大约数="+i);return;}}}}C语言趣味程序百例(12):抓交通肇事犯public class test12{public static void main(String args[]){int k;for(int i=1;i<=9;i++){for(int j=0;j<=9;j++){if(i!=j){k=i*1000+i*100+j*10+j;for(int c=31;c< 100;c++){if(c*c==k)System.out.println("肇事车牌号是"+k);}}}}}}public class test38{public static void main(String args[]){int count = 0;for (int i = 0; i <= 100; i++)for (int j = 0; j <= 50; j++)for (int k = 0; k <= 20; k++) {if (i + j * 2 + k * 5 == 100) {System.out.println(count++ + ":" + i + "-" + j + "-" + k);}}}}public class test40{public static void main(String args[]){for (int i = 0; i <= 3; i++)for (int j = 0; j <= 3; j++) {if (8 - i - j <= 6)System.out.println("Res=" + i + " White=" + j + " Black="+ (8 - i - j));}}}C语言趣味程序百例(54):博士的难题2public class test54{public static void main(String args[]){for (int a = 1; a <= 3; a++)for (int b = 1; b <= 3; b++)for (int c = 1; c <= 3; c++)if ((a != b && b != c && a != c)&& (a == 1 && b == 1 || a == 2 && b != 1 || a == 3)&& (b == 1 && b == 3 || b == 2 && b != 3 || b == 3)&& (c == 1 && b == 2 || c == 2 && b != 2 || c == 3)) {System.out.println("1表示诚实族,2表示说谎族,3表示两面族");System.out.println("a=" + a);System.out.println("b=" + b);System.out.println("c=" + c);}}}C语言趣味程序百例(62):奇特立方体public class test62{public static void main(String args[]){int x[]=new int[8];for(int i=0;i<8;i++){x[i]=Integer.parseInt(args[i]);}new test62().cube62(x);}public void cube62(int x[]) {int n = 8;boolean success=false;for (int a = 0; a < n; a++)for (int b = 0; b < n; b++)for (int c = 0; c < n; c++)for (int d =0; d < n; d++)for (int e = 0; e < n; e++)for (int f = 0; f < n; f++)for (int g = 0; g < n; g++)for (int h =0; h < n; h++) {if (notEquls(new int[] { x[a],x[b], x[c],x[d],x[e],x[f],x[g],x[h]})) {if(cube62(x[a],x[b], x[c], x[d], x[e], x[f], x[g], x[h])) return;}}if(success!=true) System.out.println("不能构成奇妙立方体");;}public boolean cube62(int a, int b, int c, int d, int e, int f, int g, int h) {boolean success=false;int s = a + b + c + d;if (s == e + f + g + h)if (s == a + b + e + f)if (s == c + d + g + h)if (s == a + c + e + g)if (s == b + d + f + h) {System.out.println("能构成奇特立方体");System.out.print(" a=" + a);System.out.print(" b=" + b);System.out.print(" c=" + c);System.out.print(" d=" + d);System.out.print(" e=" + e);System.out.print(" f=" + f);System.out.print(" g=" + g);System.out.println(" h=" + h);System.out.println("构成的奇特立方体如下图:");System.out.println(" e/----------/f");System.out.println(" a/----------/b|");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" |g/--------|-/h");System.out.println(" c/----------/d");return true;}return success;}public boolean notEquls(int[] a) {if (a == null || a.length == 0 || a.length == 1)return true;for (int i = 0; i < a.length; i++) {for (int j = 0; j < a.length; j++) {if (a[i] == a[j] && i != j) {return false;}}}return true;}}public class test49{public static void main(String args[]){for (int a = 0; a <= 1; a++)for (int b = 0; b <= 1; b++)for (int c = 0; c <= 1; c++)for (int d = 0; d <= 1; d++)for (int e = 0; e <= 1; e++)for (int f = 0; f <= 1; f++) {if (a + b >= 1&& a + d <= 1&& a + e + f == 2&& (b + c == 0 || b + c == 2)&& (c + d == 1)&& ((d == 0 && e == 0) || (d == 1 ))) {System.out.println("0是不去,1是去");System.out.println("a="+a);System.out.println("b="+b);System.out.println("c="+c);System.out.println("d="+d);System.out.println("e="+e);System.out.println("f="+f);}}}}import java.io.*;public class test10{public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("input int:");String s=br.readLine();int val=Integer.parseInt(s);System.out.println(getBits(val));}public static String getBits(int value){int displayMask=1<<31;StringBuffer buf=new StringBuffer(35);for(int c=1;c<=32;c++){buf.append((value & displayMask)==0? '0':'1');value<<=1;if(c%8==0)buf.append(' ');}return buf.toString();}}public class test9{public static void main(String args[]){int n=Integer.parseInt(args[0]);System.out.println("N="+n);for(int i=0;i<=n;i++){for(int j=0;j< 12-i;j++) System.out.printf(" ");for(int j=1;j< i+2;j++) System.out.printf("%6d",c(i,j));System.out.println();}}public static int c(int x,int y){int z;if((y==1)||(y==x+1)) return 1;z=c(x-1,y-1)+c(x-1,y);return z;}}C语言趣味程序百例(79):随机数求圆周率public class test79{public static void main(String args[]){double all=10000000;double l=1000000;double pai=0;double in=0;double x=0,y=0;for (int i=0;i<all;i++) {x=(Math.random()*l);y=(Math.random()*l);if(x*x+y*y<l*l)in++;}pai=(in/all*4);System.out.println("Times/All="+in+"/"+all+" "+"π~="+pai);}}。

CC语言趣味程序设计编程百例精解

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解()?81.角谷猜想日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。

猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。

请编程验证。

*问题分析与算法设计本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。

题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。

*程序说明与注释#include&lt;stdio.h&gt;int main(){int n,count=0;printf(&quot;Please enter number:&quot;);scanf(&quot;%d&quot;,&amp;n); /*输入任一整数*/do{if(n%2)n=n*3+1; /*若为奇数,n乘3加1*/printf(&quot;[%d]:%d*3+1=%d\n&quot;,++count,(n-1)/3,n);}else{n/=2; /*若为偶数n除以2*/printf(&quot;[%d]: %d/2=%d\n&quot;,++count,2*n,n);}}while(n!=1); /*n不等于1则继续以上过程*/}82.四方定理数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。

请编程证此定理。

*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。

对四个变量采用试探的方法进行计算,满足要求时输出计算结果。

*程序说明与注释#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int main()int number,i,j,k,l;printf(&quot;Please enter a number=&quot;);scanf(&quot;%d&quot;,&amp;number); /*输入整数*/for(i=1;i&lt;number/2;i++) /*试探法。

c语言笔试面试 编程题目

c语言笔试面试 编程题目

c语言笔试面试编程题目
以下是一些常见的 C 语言笔试和面试编程题目:
1. 编写一个程序,将两个整数相加并输出结果。

2. 编写一个程序,将两个字符串相加并输出结果。

3. 编写一个程序,将一个整数数组中的所有元素相加并输出结果。

4. 编写一个程序,将一个字符串数组中的所有元素相加并输出结果。

5. 编写一个程序,将两个整数相乘并输出结果。

6. 编写一个程序,将两个字符串相乘并输出结果。

7. 编写一个程序,将一个整数数组中的所有元素相乘并输出结果。

8. 编写一个程序,将一个字符串数组中的所有元素相乘并输出结果。

9. 编写一个程序,判断一个整数是否为素数。

10. 编写一个程序,判断一个字符串是否为回文字符串。

11. 编写一个程序,实现冒泡排序算法。

12. 编写一个程序,实现插入排序算法。

13. 编写一个程序,实现快速排序算法。

14. 编写一个程序,实现归并排序算法。

15. 编写一个程序,实现二分查找算法。

16. 编写一个程序,实现链表的基本操作(插入、删除、查找等)。

17. 编写一个程序,实现队列的基本操作(入队、出队等)。

18. 编写一个程序,实现栈的基本操作(压栈、弹栈等)。

CC++语经典、实用、趣味程序设计编程百例精解(3)

CC++语经典、实用、趣味程序设计编程百例精解(3)

C/C++语言经典、实用、趣味程序设计编程百例精解(3)21.4位反序数设N是一个四位数,它的9倍恰好是其反序数,求N。

反序数就是将整数的数字倒过来形成的整数。

例如:1234的反序数是4321。

*问题分析与算法设计可设整数N的千、百、十、个位为i、j、k、l,其取值均为0~9,则满足关系式:(i*103+j*102+10*k+l)*9=(l*103+k*102+10*j+i)的i、j、k、l即构成N。

*程序说明与注释#include<stdio.h>int main(){int i;for(i=1002;i<1111;i++) /*穷举四位数可能的值*/if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9)/*判断反序数是否是原整数的9倍*/printf("The number satisfied stats condition is: %d\n",i);/*若是则输出*/}*运行结果The number satisfied states condition is:108922.求车速一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。

两小时后里程表上出现了一个新的对称数。

问该车的速度是多少?新的对称数是多少?*问题分析与算法设计根据题意,设所求对称数为i,其初值为95589,对其依次递增取值,将i值的每一位分解后与其对称位置上的数进行比较,若每个对称位置上的数皆相等,则可判定i即为所求的对称数。

*程序说明与注释#include<stdio.h>int main(){int t,a[5]; /*数组a存放分解的数字位*/long int k,i;for(i=95860;;i++) /*以95860为初值,循环试探*/{for(t=0,k=100000;k>=10;t++) /*从高到低分解所取i值的每位数*/{ /* 字,依次存放于a[0]~a[5]中*/a[t]=(i%k)/(k/10);k/=10;}if((a[0]==a[4])&&(a[1]==a[3])){printf("The new symmetrical number kelometers is:%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4]);printf("The velocity of the car is: %.2f\n",(i-95859)/2.0);break;}}}*运行结果The new symmetrical number kelometers is:95959.The velocity of the car is:50.00*思考题将一个数的数码倒过来所得到的新数叫原数的反序数。

c语言趣味编程例题

c语言趣味编程例题

c语言趣味编程例题
以下是一些有趣的C语言编程例题,供您参考:
1. 猜数字游戏
编写一个猜数字的小游戏,让用户从0到100之间随机生成一个数字,用户可以多次猜测,每次猜测后程序会提示用户猜大还是猜小,直到猜中为止。

2. 反转字符串
编写一个函数,接受两个参数,分别为字符串和字符串长度,返回一个新的字符串,该字符串是原字符串的反转。

3. 计算阶乘
编写一个函数,接受一个整数n作为参数,返回n的阶乘。

4. 编写一个简单的计算器
编写一个简单的计算器,可以进行加、减、乘、除四则运算,支持整数和浮点数运算。

5. 编写一个简单的图形界面应用程序
使用C语言编写一个简单的图形界面应用程序,实现一个窗口,其中
包含一个按钮和一个标签。

当用户点击按钮时,标签的文本将更改为“Hello, World!”。

6. 编写一个简单的文本编辑器
编写一个简单的文本编辑器,支持打开、保存和删除文件,并能够在文本中进行插入、删除和替换操作。

7. 编写一个简单的游戏
编写一个简单的游戏,例如俄罗斯方块、扫雷或贪吃蛇等,可以使用C语言编写游戏引擎,然后使用图形库来创建游戏界面。

这些例题可以帮助您练习C语言编程技能,并提高您的编程能力。

C-C++语言趣味程序设计编程百例精解(6)

C-C++语言趣味程序设计编程百例精解(6)
&&(c&&a+b+c==1||!c&&a+b+c!=1))
{
printf("A is a %s.\n",a?"honest":"lier"); /*输出判断结果*/
printf("B is a %s.\n",b?"honest":"lier");
printf("C is a %s.\n",c?"honest":"lier");
甲说:”乙没有偷,是丁偷的。” B+D=1
乙说:“我没有偷,是丙偷有。” B+C=1
丙说:“甲没有偷,是乙偷的。” A+B=1
丁说:“我没有偷。” A+B+C+D=1
其中丁只说了一句话,无法判定其真假,表达式反映了四人中仅有一名是窃贼的条件。
*程序说明与注释
#include<stdio.h>
printf("C is pasted a piece of %s paper on his forehead.\n",
c?"white":"black");
printf("D is pasted a piece of %s paper on his forehead.\n",
d?"white":"black");
51.谁是窃贼
公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:

C语言趣味编程100例

C语言趣味编程100例

/*保证每次循环时 s 的初值为 0*/ /*判断 j 是否为 i 的因子*/
3.2 亲 密 数
1.问题描述
如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B;且整数 B 的全部因子 (包括 1,不包括 B 本身)之和等于 A,则将整数 A 和 B 称为亲密数。求 3000 以内的全部
注意:C 语言中的整数问题,经常涉及判断两数是否相等或某变量(或表达式)是否 满足某一条件的情况,对于这类问题,初学者经常会存在对赋值符号“=”与等于号“==” 混淆的问题。
赋值符号“=”:基本的赋值运算符是“=”。它的优先级别低于其他的运算符,所以对 该运算符往往最后读取。它的作用是将一个表达式的值赋给一个(左值)变量,左值必须 能够被修改,不能是常量。如 while(i=10)……此表达式的作用是将右值“10”赋给左值 i, 每次判断 i 的值都为 10,所以表达式的值为非 0,即判定条件为真,导致程序进入死循环。
第 3 章 “各种”趣味整数
整数通常是程序设计语言的一种基础形态,例如 Java 及 C 编程语言的 int 类型。整数 问题是实际应用中遇到的一类问题。整型数据从所占内存大小可分为基本整型(int)、长 整型(long int)和短整型(short int),根据数据满足的某些性质又可将其分为“完全数”、 “水仙花数”、“亲密数”等。整数问题中经常用到的是对数据的拆分、组合,初学者一定要 从实例中总结方法并掌握。本章主要通过对各类整数问题的算法进行讲解,以培养读者的 编程思维方式与编程技巧。本章主要内容如下:
4.求某给定数的位数
求一个数的位数可以借助最高位的权值来计算,对于十进制来说,个位的权值为 100, 十位的权值为 101,百位的权值为 102 ,……,一个存储三位数的变量 n=123,每次除以 10,将得到的值再赋给 n 直到 n 的值为 0,最多可以除 3 次;若变量 n 中存储的是四位数, 用同样的方法去除以 10,最多可以除 4 次。可以发现,直到变量变为 0,除以 10 的次数即 为当前给定数的位数。程序如下:

有趣的c语言代码例子

有趣的c语言代码例子

有趣的c语言代码例子
1.猜数字游戏:编写程序生成一个介于1到100之间的随机数,用户输入猜测的数字直到猜对为止,程序会给出猜测数字相对于答案的大小关系提示(例如“猜测数字太大”或“猜测数字太小”)。

2. 打地鼠游戏:在屏幕上生成随机的地鼠图案,用户用鼠标点击击打地鼠以获得分数,随着时间的推移地鼠速度逐渐加快。

3. 贪吃蛇游戏:编写程序生成一个贪吃蛇,蛇头可以用键盘控制移动,当蛇吃到食物时身体长度增加,当蛇头碰到墙壁或自己的身体时游戏结束。

4. 数独游戏:生成一个数独谜题,用户通过键盘输入数字来填充空白格子,当谜题填写完整且符合数独规则时游戏结束。

5. 神经网络:使用C语言实现一个简单的神经网络,可以用来识别手写数字或其他模式识别任务。

6. 数据结构:实现一个栈或队列数据结构,可以用来解决各种实际问题。

7. 图像处理:使用C语言读取图像文件并进行简单的处理,例如灰度化、边缘检测或图像滤波等。

8. 加密解密:实现一个简单的加密解密算法,例如Caesar密码或RSA加密算法。

9. 排序算法:实现常见的排序算法,例如冒泡排序、插入排序或快速排序等。

10. 计算机模拟:使用C语言模拟各种实际问题,例如天气预报、
股票交易或人口统计等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

狼追兔子 1巧夺偶数 2五猴分桃 3高次方数 4借书方案 5过桥问题 6数制转换7打渔晒网8喝酒问题9 哥德巴赫猜想10 打印日历11 抓交通肇事逃逸犯12 反序数13新郎新娘14称重砝码15求车速16谁是窃贼17出售金鱼18百钱百鸡19谜语博士20 猜牌术(-)21 舍罕王的失算22 怎样存钱利最大23 猜牌术(二)24 爱因斯坦的数学题25 取火柴游戏26平分鱼和筐27可逆素数28三色球问题29抢n游戏30问题A: 趣味程序设计_狼追兔子时间限制: 1 Sec 内存限制: 128 MB提交: 341 解决: 63[提交][状态][讨论版]题目描述一只兔子躲进了n个环形分布的洞的某一个中。

狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。

以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?输入有多组测试数据,读取到文件结尾符为止。

每组测试数据输入n(2≤n≤100),即洞穴个数。

输入到文件结尾符为止。

输出兔子可能藏匿的洞。

如果不止一个,按从小到大的顺序输出。

如果不存在,输出空行。

样例输入10815样例输出2 4 7 92 4 5 7 8 9 11 12 14提示用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。

通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。

循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。

#include<stdio.h>#include<string.h>int ok[110];int main(){int n,s,i,find;while(scanf("%d",&n)!=EOF){memset(ok,0,sizeof(ok));for(i=1;i<=200;i++)if(!ok[find=(i*(i+1)/2)%n])if(find==0)ok[n]=1;elseok[find]=1;for(s=0,i=1;i<=n;i++)s+=ok[i];for(i=1,find=0;i<=n;i++)if(!ok[i]){if(find!=(n-s-1)){printf("%d ",i);find++;}elseprintf("%d",i);}printf("\n");}return 0;}问题B: 趣味程序设计_巧夺偶数时间限制: 1 Sec 内存限制: 128 MB提交: 174 解决: 73[提交][状态][讨论版]题目描述桌子上有25颗棋子。

游戏双方轮流取子,每人每次最少取走一颗棋子,最多可取走3颗棋子。

双方照这样取下去,直到取光所有的棋子。

于是双方手中必然一方为偶数,一方为奇数,偶数方为胜者。

请编程实现人机游戏。

人先走,计算机后走。

若游戏结束,则输出“Game over!”。

输入输入人取走棋子的个数。

输入一次,按一次回车。

游戏不止一轮。

按下文件结尾符,退出游戏。

必须在完成一轮后退出游戏。

不得中途退出游戏。

输出输出计算机取走的个数,每次输出最优解。

样例输入11111112132131样例输出333333Game over!231231Game over!#include<stdio.h>int main(){int n,sum=25;loop:while(scanf("%d",&n)!=EOF){sum-=n;if(sum==1){printf("1\nGame over!\n");sum=25;goto loop;if(sum==3||sum==2){printf("1\n");sum--;}}else{if(sum<=0){printf("Game over!\n");sum=25;goto loop;}else{printf("%d\n",4-n); if(n==1)sum-=3;if(n==2)sum-=2;if(n==3)sum-=1;}}}return 0;}问题C: 趣味程序设计_五猴分桃时间限制: 1 Sec 内存限制: 128 MB提交: 186 解决: 102[提交][状态][讨论版]题目描述5只猴子一起摘了1堆桃子。

因为太累了,它们商量决定,先睡一觉再分。

过了不知多久,1只猴子来了。

它见别的猴子没来,便将这1堆桃子平均分成5份,结果多了1个,就将多的这个吃了,拿走其中的1堆。

又过了不知多久,第2只猴子来了。

它不知道有1个同伴已经来过,还以为自己是第1个到的呢。

于是将地上的桃子堆起来,平均分成5份,发现也多了1个,同样吃了这1个,拿走其中的1堆。

第3只、第4只、第5只猴子都是这样……问这5只猴子至少摘了多少个桃子?第5个猴子走后还剩下多少个桃子?输入无输出输出5只猴子至少摘了多少个桃子,第5个猴子走后还剩下多少个桃子。

中间用空格隔开。

样例输入样例输出3121 1020提示思路一:“分”——假设至少摘了first_num个桃子,则令first_num=6,7,8,9,10,……这样不断的试,如果那个数能按规则(first_num=(first_num-1)/5*4)被5只猴子顺利的吃1个并分5组,则为所求。

思路二:“凑”——假设最后剩下last_num个桃子,则令last_num=4,5,6,7,8,9,10,……这样不断的试,如果那个数能按规则(last_num%4==0则last_num = last_num / 4 * 5 + 1)凑5次,则为所求。

#include<stdio.h>#include<time.h>int main(){int first,i,t;for(i=1;i<5000;i+=5){first=i;for(t=1;t<=5;t++){if(first%5==1){first=(first-1)/5*4;if(t==5)printf("%d %d\n",i,first);}elsebreak;}}// printf("time:%.2lf\n",(double)clock() / CLOCKS_PER_SEC);return 0;}问题D: 趣味程序设计_高次方数时间限制: 1 Sec 内存限制: 128 MB提交: 559 解决: 80[提交][状态][讨论版]题目描述求13的n次方(12<n≤130000000000)的最后三位数。

例如:13的13次方的最后三位数是253,13的20次方的最后三位数是801。

输入有多组测试数据,每组测试数据一行,即整数n。

以文件结尾符结束。

输出输出13的n次方的最后三位数样例输入1320样例输出253801提示64位整型用 long long 表示,格式串为"%lld"#include<stdio.h>int fun(long long n){int k=13,t=1;while(n>0){if(n%2==1)t=t*k%1000;k=k*k%1000;n>>=1;}return t;}int main(){long long n;while(scanf("%lld",&n)!=EOF)printf("%03d\n",fun(n));return 0;}问题E: 趣味程序设计_借书方案时间限制: 1 Sec 内存限制: 128 MB提交: 429 解决: 154[提交][状态][讨论版]题目描述小明有n本新书,要借给A、B、C三位小朋友。

只借一次。

若每人每次只能借一本,则可以有多少种不同的借法?输入有多组测试数据,输入整数n (5≤n≤1000),输入到文件结尾符为止。

输出借法总数。

样例输入5678样例输出60120210336#include<stdio.h>int main(){long long n;while(scanf("%lld",&n)!=EOF)printf("%lld\n",n*(n-1)*(n-2));return 0;}问题F: 趣味程序设计_过桥问题时间限制: 1 Sec 内存限制: 128 MB提交: 102 解决: 19[提交][状态][讨论版]题目描述过桥问题。

有N(N≥2)个人在晚上需要从X地到达Y地,中间要过一座桥,过桥需要手电筒(而他们只有1个手电筒),每次最多两个人一起过桥(否则桥会垮)。

N个人的过桥时间依次存入数组t[N]中,分别为:t[0], t[1], ……, t[N-1]。

过桥的速度以慢的人为准!注意:手电筒不能丢过桥!问题是:编程求这N个人过桥所花的最短时间。

输入有多组测试数据,每组数据先输入一个人数N,然后输入这N个人过桥所花的时间。

输出输出对应的最短时间。

样例输入4 1 25 104 5 2 10 1样例输出1717#include<stdio.h>void fun(int *a,int n){int i,j,t,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(a[j]<a[k])k=j;}if(i!=k){t=a[i];a[i]=a[k];a[k]=t;}}}int main(){int a[100],i,n,time,k;while(scanf("%d",&n)!=EOF) {time=0;for(i=0;i<n;i++)scanf("%d",&a[i]); fun(a,n);k=n-1;while(1){if(k<=2){if(k==0)time+=a[0];if(k==1)time+=a[1];if(k==2)time+=(a[0]+a[1]+a[2]);printf("%d\n",time);break;}else{if(2*a[1]>=a[0]+a[k])time+=(2*a[0]+a[k-1]+a[k]);if(2*a[1]<a[0]+a[k])time+=(a[0]+2*a[1]+a[k]);k-=2;}}}return 0;}问题G: 趣味程序设计_数制转换时间限制: 1 Sec 内存限制: 128 MB提交: 265 解决: 110[提交][状态][讨论版]题目描述将任一整数转换为二进制数形式并输出。

相关文档
最新文档