Description 给定整数n(32位以内),判断它是否为2的方幂。
是就输出'yes',否则输出'no'。
Input 一个整数n。
Output 一个字符串Sample Input 4Sample Output yesHintn > 0 && ( ( n & ( n - 1 ) ) == 0貌似是数学问题,套用了提示program ex1560;var n:longint;beginreadln(n);if (n>0) and (n and (n-1)=0) then write('yes') else write('no'); end.输入 127 输出 NO 输入 262144 输出 YES 输入 68719476736 输出 YES问题描述:计算机软件版本通常被用来区分某种软件在不同时间的发布。
大部分软件版本号都是用“.”分隔的非负数的序列。
对两个不同的版本A = a1.a2.a3…an和B = b1.b2.b3…bm,如果下面两个条件之一成立,我们认为版本A要比版本B新:1.对某个i,我们有:对所有j < i, ai > bi 和aj = bj;2.n比m大,而且对所有i < m, ai = bi。
(ai和bi都不超过LONGINT)在这个问题里,你要对给定的一组版本号,按照上面的定义从旧到新排序。
输入文件(VERSIONS.IN):输入文件第一行是一个整数N(N<=20),表示要排序的版本数。
接下来的N行每行一个版本号。
每个版本号是长度不超过50的字符串。
输出文件(VERSIONS.OUT):将排好序的结果以每行一个版本号输出。
输入输出样例:VERSIONS.IN43.0.512.42.4.6VERSIONS.OUT12.42.4.63.0.5var n,i:integer;scan:array [1..30] of string;function check(aa,bb:string):boolean;vara,b:longint;i,j:integer;code:integer;beginaa:=aa+'.'; bb:=bb+'.';i:=pos('.',aa); j:=pos('.',bb);while (i>0) and (j>0) do beginval(copy(aa,1,i-1),a,code);val(copy(bb,1,j-1),b,code);if a<b then exit(true);if a>b then exit(false);delete(aa,1,i);delete(bb,1,j);i:=pos('.',aa);j:=pos('.',bb);end;if (i=0) and (j>0) then exit(true) else exit(false); end;procedure qsort(l,r:integer);vari,j:integer;t:string;beginif l>=r then exit;i:=random(r-l)+l;t:=scan[i];scan[i]:=scan[l];i:=l;j:=r;repeatwhile (i<j) and (check(t,scan[j])) do dec(j);if i=j then break; scan[i]:=scan[j];while (i<j) and (check(scan[i],t)) do inc(i);if i=j then break; scan[j]:=scan[i];until i=j;scan[i]:=t;qsort(l,i-1);qsort(i+1,r);end;beginreadln(n);for i:=1 to n do readln(scan[i]); qsort(1,n);for i:=1 to n do writeln(scan[i]); end.输入73.0.5.11.02.22.2.62.2.83.0.5.43.0 输出1.02.22.2.62.2.83.03.0.5.13.0.5.4输入1211.0.21.0.36.23.43.4.222.12.1.43.4.14.24.2.2输出 11.0.21.0.322.12.1.43.43.4.13.4.24.24.2.26.2输入正整数N、M,求N÷M的值。
如果商的小数部分出现循环节,则输出时要求用圆括号将循环节括起来,如果商为整数,则输出为整数。
例如:1÷2=0.51÷3=0.(3) 22÷5=4.4 33÷3=11输入:N M输出:N÷M的值(保证小数点后不超过50位,而且未尾不能有多余的0)样例:输入:N,M=45 56输出:0.803(571428)程序:Var n,m:real;r,c:array[0..50] of real;i,j,k,flag: integer;begin write('N,M='); readln(n,m);k:=0; flag:=1;if m<>0 then beginc[0]:=int(n/m); r[0]:=n-m*c[0];while (r[k]<>0) and (flag=1) do beginc[k+1]:=int((r[k]*10)/m); r[k+1]:=r[k]*10-m*c[k+1];k:=k+1; i:=0;if k=50 then flag:=0;while (i<k) and (flag=1) do beginif (r[i]=r[k]) then flag:=0;i:=i+1;end;end;if r[0]<>0 then write(c[0]:0:0, '.') else write(c[0]:0:0);for j:=1 to i-1 do write(c[j]:0:0);if r[k]<>0 then write('(');if r[0]<>0 then for j:=i to k do write(c[j]:0:0);if r[k]<>0 then writeln(')') else writeln; writeln;end else writeln('b=0');readln;end. 37 92输出0.40(2173913043478260869565)6 103输出0.(0582524271844660194174757281553398)100 50 输出250 37 输出1.(351)现在是晚餐时间,而母牛们在外面分散的牧场中。
农民约翰按响了电铃,所以她们开始向谷仓走去。
你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只速度最快的母牛)。
在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。
每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。
有时,两个牧场(可能是自我相同的)之间会有超过一条道路相连。
至少有一个牧场和谷仓之间有道路连接。
因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径。
当然,母牛能向着任意一方向前进,并且她们以相同的速度前进。
牧场被标记为'a'..'z'和'A'..'Y',在用大写字母表示的牧场中有一只母牛,小写字母中则没有。
谷仓的标记是'Z',注意没有母牛在谷仓中。
PROGRAM NAME: comehomeINPUT FORMAT第1 行: 整数P(1<= P<=10000),表示连接牧场(谷仓)的道路的数目。
第2 ..P+1行: 用空格分开的两个字母和一个整数:被道路连接牧场的标记和道路的长度(1<=长度<=1000)。
SAMPLE INPUT (file comehome.in)5A d 6B d 3C e 9d Z 8e Z 3OUTPUT FORMAT单独的一行包含二个项目:最先到达谷仓的母牛所在的牧场的标记,和这只母牛走过的路径的长度。
SAMPLE OUTPUT (file comehome.out)B 11纯粹的floyd算法,只要注意牛一开始只在大写字母中就行了^_^{ID:chenxia3PROB:comehomeLANG:PASCAL}var p,n,i,j,k:longint;ch1,ch2,ch3:char;x,y,z,min:longint;g:array[1..26*2,1..26*2] of longint;beginassign(input,'comehome.in'); assign(output,'comehome.out');reset(input); rewrite(output);readln(p);fillchar(g,sizeof(g),$7f);for i:=1 to p dobeginread(ch1,ch2,ch3); readln(z);if ch1 in ['A'..'Z'] then x:=ord(ch1)-64else x:=ord(ch1)-6-64;if ch3 in ['A'..'Z'] then y:=ord(ch3)-64else y:=ord(ch3)-6-64;if z<g[x,y] thenbeging[x,y]:=z;g[y,x]:=z;end;end;for k:=1 to 52 dofor i:=1 to 52 dofor j:=1 to 52 doif g[i,k]<g[i,j]-g[k,j] thenbeging[i,j]:=g[i,k]+g[k,j];g[j,i]:=g[i,j]end;min:=maxlongint;for i:=1 to 25 doif g[i,26]<min thenbeginmin:=g[i,26];x:=i;end;if x in [1..26] then write(chr(x+64)) else write(chr(x+64+6)); writeln(' ',min);close(input); close(output);end.输入8A e 8B d 4C e 9d Z 6e Z 3e C 7f C 9e Z 5输出B 10输入10D e 8C d 3B e 9d Z 6f Z 3e C 7f C 9e Z 5X c 7c Y 6输出C 9。