1171 多个数的最小公倍数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 2921 | 通过数 : 1425
题目描述
也许你已经会了求2个数字最小公倍数的方法,但是如果求多个数字的最小公倍数,你又能找到办法吗?
输入要求
首先输入一个整数n表示有n个数,然后输入这n个整数。(n<=100)
输出要求
求出n个整数的最小公倍数。
输入样例
5 3 5 7 11 9
输出样例
3465
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int n,a[100],i,j,d=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;;i++){
d=0;
for(j=0;j<n;j++){
if(i%a[j]==0) d++;
}
if(d==n){
printf("%d\n",i);
break;
}
}
return 0;
}
1172 十进制转换成八进制
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11130 | 通过数 : 5703
题目描述
输入一个十进制整数,把这个数转换为八进制的数输出。
输入要求
输入一个十进制整数。
输出要求
输出转化后的八进制数,各数字间空一格,最后一个数据后面也有空格,再换行。
输入样例
57
输出样例
7 1
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int n,b[100],i=0,j;
scanf("%d",&n);
while(n){
b[i++]=n%8;
n/=8;
}
for(j=i-1;j>=0;j--)
printf("%d ",b[j]);
printf("\n");
return 0;
}
1173 十进制转换成n进制
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 7211 | 通过数 : 2809
题目描述
输入一个十进制正整数,把这个数转换为n进制。
输入要求
输入两个整数num和n,num表示要转换的数,n表示要转换成的进制。如10 2表示要求将十进制数10转换成二进制数。(2<=n<17)
输出要求
输出转化后的进制数,每个数字之后跟一空格,如果数字大于9,则输出大写英文字母(10-16分别对应A-F)。
输入样例
10 2
输出样例
1 0 1 0
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int num,n,b[100],i=0,j;
scanf("%d%d",&num,&n);
while(num){
b[i++]=num%n;
num/=n;
}
for(j=i-1;j>=0;j--){
if(b[j]>9) printf("%c ",b[j]-10+'A');
else printf("%d ",b[j]);
}
printf("\n");
return 0;
}
1174 哥德巴赫猜想
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9401 | 通过数 : 4525
题目描述
所谓哥德巴赫猜想是指,任一大于2的偶数都可以写成两个质数之和(严格说来,这是欧拉的等价描述版本)。例如6=3+3,8=3+5,...,18=7+11。迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。试编写程序,验证任一大于2的偶数都能写成两个质数之和。(可能有多种情况,请输出两数差最大的那组)
输入要求
输入一个大于2的偶数N。
输出要求
输出两个质数和的形式,小的质数在前,大的质数在后。
输入样例
16
输出样例
16=3+13
提示
来源
NBU OJ
别人的代码:
#include<stdio.h> //C
int z(int n){
int i;
for(i=2;i*i<=n;i++){
if(n%i==0) return 0;
//判断是否是质数
}
return 1;
}
int main(){
int n,i,max=-1,x=0,y=0;
scanf("%d",&n);
for(i=2;i<=n/2;i++){
if(z(i)&&z(n-i)){
if(n-i-i>max){//挑选两数差最大的那组数
max=n-i-i;
x=i;
y=n-i;
}
}
}
printf("%d=%d+%d\n",n,x,y);
return 0;
}
1175 查找最大元素
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 12086 | 通过数 : 6127
题目描述
对于输入的字符串,查找其中的AscII码最大字母,在该字母后面插入字符串"(max)”。不包括引号。
输入要求
输入一行长度不超过100的字符串,字符串仅由大小写字母构成。
输出要求
输出一行字符串,输出的结果是插入字符串"(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
输入样例
abcdefgfedcba
输出样例
abcdefg(max)fedcba
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
char a[100],max;
int i;
gets(a);
max=a[0];
for(i=1;a[i]!='\0';i++){
if(a[i]>max) max=a[i];
}
for(i=0;a[i]!='\0';i++){
printf("%c",a[i]);
if(a[i]==max) printf("(max)");
}
printf("\n");
return 0;
}
1176 统计单词数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9804 | 通过数 : 3322
题目描述
擎天柱最近很空,他想做一件没有什么意义的事情,就是统计输入文档里单词的总数。
输入要求
输入一行字符表示一篇小文章,每篇小文章都是由英文字母、数字和空格组成,没有标点符号,遇到换行符时表示输入结束。文章最多由1000个字符组成。
输出要求
输出一个整数,代表文章里单词的总数。
输入样例
You are my friend 007
输出样例
5
提示
两个单词之间用空格间隔,空格可能不止一个
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
char a[1000];
int i,d=0,set=1;
gets(a);
for(i=0;a[i]!='\0';i++){
if(a[i]==' ') set=1;
else if(set) d++,set=0;
}
printf("%d\n",d);
return 0;
}
1177 交换最小数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11175 | 通过数 : 3814
题目描述
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数,若最小的数有多个只交换最前面的那个。
输入要求
先输入一个整数n,表示这个测试实例的数值的个数,跟着就是输入n个整数。
输出要求
输出交换后的数列。
输入样例
5 5 4 3 2 1
输出样例
1 4 3 2 5
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int n,a[100],i,min,id=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=0;i<n;i++){
if(a[i]<min) min=a[i],id=i;
}
printf("%d",min);
for(i=1;i<n;i++){
if(i==id) printf(" %d",a[0]);
else printf(" %d",a[i]);
}
printf("\n");
return 0;
}