for(p=n;k*k<=p;++k) if(n%k==0){n=p/k;break;} return n; }
int main(){ int c,a[100]={0},b,k,i,d; while((c=getchar())!='\\n'){ i=0;b=0; //不能少 while((c=getchar())!='\\n'){ if(isdigit(c)){ a[i]=c-'0';++i;} }
for(k=0,d=i;k 16马鞍点 描述 请写一个程序,找出给定矩阵的马鞍点。若一个矩阵中的某元素在其所在行最小而在其所在列最大,则该元素为矩阵的一个马鞍点。 输入说明 输入数据由m+1行构成,第一行只有两个整数m和n(0 在一行上输出马鞍点的行号、列号(行号和列号从0开始计数)及元素的值(用一个空格分隔),之后换行;若不存在马鞍点,则输出一个字符串“no”后换行。 输入样例 4 3 11 13 121 407 72 88 23 58 1 134 30 62 输出样例 1 1 72 21 #include int a[100][100],b,c=0,i,j,k,p,m,n,t; scanf(\ for(i=0;i 17等差数列 描述 请写一个程序,判断给定整数序列能否构成一个等差数列。 输入说明 第一行为整数T(T<=10),代表测试数据的数目。每组数据由两行构成,第一行只有一个整数n(<100),表示序列长度(该序列中整数的个数),第二行为n个整数,每个整数的取值区间都为[-32768~32767],整数之间以空格、跳格或换行间隔。 输出说明 对每一组数据输出判断结果,不能构成等差数列输出“no”,能构成等差数列输出表示公差(相邻两项的差)绝对值的一个整数,输出后换行。 输入样例 2 6 23 15 4 18 35 11 5 2 6 8 4 10 22 输出样例 no 2 #include int m,n,p,i,j,t,a[100]; scanf(\ for(m=0;m return 0; } 18寻找最长的行 描述 寻找若干行文本中最张的一行 输入说明 输入为多个字符串(每个字符串长度不超过100个字符),每个字符串占一行,输入的行为“***end***”时表示输入结束 输出说明 输出其中最长的一行长度后换行再输出最长行的内容,如果最长行不止一个,则输出其中的第一行。 输入样例 abce abdf dlfd ***end*** 23 输出样例 9 abdf dlfd #include int m,n=0;char a[100],b[100]; while(strcmp(gets(a),\ m=strlen(a); if(m>n){n=m;strcpy(b,a);} if(m=n); } printf(\ return 0; } 19约瑟夫环 描述 编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出圈为止。 输入说明 仅有一组数据,输入数据第一行为两个正整数n(0 3 8 1 22 4 9 15 输出样例 5 2 6 7 4 3 1 #include 24 int m,n,i,j,k,p,q,a[100]; scanf(\ for(i=0;i scanf(\ for(k=0,i=0;k for(j=i,p=0,q=0;p if(i>n-1)i=i%n; if(a[i]==0)--p; } m=a[i]; a[i]=0; printf(\ for(++i>n-1?i=i%n:i;k printf(\ return 0; } 20字符串压缩 描述 有一种简单的字符串压缩算法,对于字符串中连续出现的同一个字符,用该字符加上连续出现的次数来表示(连续出现次数小于3时不压缩),例如,字符串aaaaabbbabaaaaaaaaaaaaabbbb可压缩为a5b3aba13b4。请设计一个程序,将采用该压缩方法得到的字符串解压缩,还原出原字符串并输出。 输入说明 只有一组数据,数据为一个字符串(长度不大于50,只包含字母和数字) 输出说明 在一行上输出解压缩后的字符串(长度不超过100),最后换行。 输入样例 a5b3aba13b4 输出样例 Aaaaabbbabaaaaaaaaaaaaabbbb #include 25 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库上机题及答案(5)在线全文阅读。
相关推荐: