题目描述某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
数据范围:
40%的数据满足:1<=n<=1000
80%的数据满足:1<=n<=50000
100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)输入格式输入包含n+1行;
第一行是整数n,表示自然数的个数;
第2~n+1每行一个自然数。输出格式输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开
pascal 统计数字
数据规模n在200000因此O(nlogn)排序【即快排或其他高效排序法】可过。数据范围在1,500,000,000<maxlongint=2,147,483,647,所以使用高精度存储完全没有必要。qsort在一定情况下的最差表现为o(n^2)。参考程序使用了qsort。这道题目适合用来初学者练习排序。参考程序 program count;var a: array[0...
pascal统计最多数字
暑假信息学培训班A组需要选一个组长。A组一共有n个人,分别用1到n编号,其中m个人参与了投票。得票数过半(票数大于m div 2)的人将被选为组长。输入数据将告知这m个人分别将票投给了谁,请统计出谁将担任暑假信息学培训班A组的组长。输入格式 Input Format 第一行两个数n(1<=n<=maxlongin...
pascal:统计10个自然数中,0~9这十个数字出现的次数。
program check(input, output);var i, n: integer;count: array[0..9] of integer s: string;begin for n:=0 to 9 do count[n]:=0;for n:=1 to 10 do begin write('input number: ');readln(n);str(n, s);for i:=1 to length(s) do inc( count[ ord(s[i])-ord('0...
数的统计 pascal
我可以先求出没有零的数,一位数中有9个数没有零,二位数中有9^2个数没有零,三位数中有9^3个数没有零……标程如下:var n,l,s,t,p:longint;m:string;begin readln(n); p:=n;str(n,m);l:=length(m);t:=1;s:=0;while n>0 do begin s:=s+(n mod 10)*t;t:=t*9;n...
Pascal求1-n各位数字和,在线等!!!
没用过pascal,用c是挺简单的 int N,n,m=0,i;\/\/给定N,n为个位数,m统计当前所在位 输入输出那些我就不弄了 int a[10]={0};\/\/建立数组 \/\/首先计算个位的,因为这时应该m=-1,当然 \/\/把10^-1=0添加到函数里也可以 n=N%10;for(i=1;i<=n;i++)a[i]++;N=N\/10;while(N!=...
用pascal语言编程:输入一行字符,分别统计出其中英文字母、空格、数字和...
不超过100个):");gets(all);for(i=0;all[i];i++){ if(all[i]>'a'&&all[i]<'z'||all[i]>'A'&&all[i]<'Z')zimu++;else if(all[i]>'0'&&all[i]<'9')shuzi++;else qita++;} printf("其中字母%d个,数字%d个,其他字符%d个\\n",zimu,shuzi,qita);} ...
PASCAL程序疑问:这个程序的错误原因. 原题目是统计一个数字里数字出现的...
第一个FOR那里,1 to length(S) 是 整数的类型 而s 是字符串,还有,num的初始化应该放在循环的外面,否则会每次都清空,那就白折腾了 还有,case前面不用 也 不能加 FOR 否则出现一次 变十次 等等,A究竟有啥用呢,它是空的,最后输出也应该用一重循环。所以应改成 var s:string;i,k:byte...
pascal编程求出所有不超过1000的数中,含有数字3的自然数,并统计总数
var a,b,c,x:integer;begin for a:=0 to 9 do for b:=0 to 9 do for c:=0 to 9 do if (a=3)or(b=3)or(c=3) then begin x:=a*100*b*10*c;write(x:5);end;end.
pascal求解
最直接的思路:设二维布尔数组,将该圆走过的路径扫描一遍(要用到圆的方程),经过的格子标记,并记录走过的格子数(红色)。然后将红色格子围着的格子(蓝色)宽搜,统计个数。
帮忙看一下,Pascal程序数字查找统计 那里错了
楼主,你究竟是从屏幕上读数据,还是从文件中读数据?从屏幕上读数据你就没必要用eof,eof表示文件终止(end of file)。program ex1026;var x, y: Integer;begin y:=0;repeat read(x);if x mod 10 = 1 then Inc(y);until x = 0;Writeln(y);end....