1.
第一行是一个整数n(1<=n<=1000),表示有多少个数求和;
第二行是n个整数,每个整数都在-10^5到10^5之间,每个整数之间用空格隔开。
输出和的值(不要输出回车)
这个题其实思路很简单就是建一个数组然后累加;但是在累加的过程中我还是出了一些问题,就是我忘记把初始值设置为0;
然后加出来的数特别大让我以为是程序写错了,设为0之后就没问题了;
#include<stdio.h>
int main()
{
int i,n,a[1000];
int s = 0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
s+= a[i];
}
printf("%d",s);
}
2.
有多个测试用例,每行两个正整数x,y,保证x*y不超过2^31-1。如果x与y都为0,则输入结束。
每行输出一个测试用例的结果,即x与y的最小公倍数。(最后一行有回车)
这个题吧,主要是有多组样例这里用while(scanf("%d%d",&x,&y))表示,x与y都为0用个if表示
然后就是算法问题了,这里判断怎么求最大公约数用的是判断y
#include<stdio.h>
int main()
{
int x,y;
while(scanf("%d%d",&x,&y))
{
int c,s;
s= x*y;
if(x==0&&y==0)
return 0;
else
while(y!=0)
{
c = x%y;
x = y;
y = c;
}
printf("%d\n",s/x);
}
}
3
请求N!(N<=10000),输出结果对10007取余
输入
每行一个整数n,遇到-1结束。
输出
每行一个整数,为对应n的运算结果。
这个题求阶乘倒是,没什么问题,主要是那一句输出