版权声明:版权问题请加微信:17165380098 备注 版权问题 https://blog.csdn.net/qq_30277453/article/details/82933578
A - A+B for Input-Output Practice (II) |
#include<stdio.h>
int main()
{
int i,n;
int a,b;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d %d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
辗转相除法(欧几里得算法):两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数 |
//辗转相除法
#include <stdio.h>
int main()
{
int m, n,mcd, t, r, gcd;
scanf("%d %d", &m, &n);
gcd=m*n;
if(m<n)
{
t = m;
m = n;
n = t;
}
while(n!=0)//也可写为while(n)
{
r = m % n;
m = n;
n = r;
}
printf("%d\n",m);
printf("%d\n",gcd/m);
return 0;
}
素数:除1和其自身以外,不能被其他数整除的数字 注意1不是个素数 flag标识符方便运算(节省空间与时间) |
#include<stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
int flag = 1;
if(n==1)printf("This is not a prime.\n");
else{
for(i=2;i<n;i++){
if(n%i==0){
flag = 0;
break;
}
}
if(flag == 1)printf("This is a prime.\n");
else if(flag == 0)printf("This is not a prime.\n");
return 0;
}
}
max = 0 逐个绝对值对比, 绝对值大于max的绝对值的,max = 该数 |
两个一组,注意格式转换 |
逐位相加,总和逐步相加 |
#include<stdio.h>
int main()
{
int i,n,m;
scanf("%d %d",&n,&m);
int sum = 0;
int x = n;
for(i=1;i<=m;i++){
sum += x;
x = 10*x + n;
}
printf("%d\n",sum);
}
从1开始,逐个相加 |
根据题意做就行,注意0! = 1 |
两个数组各自相加 |
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
int f[101];
int s1 = 0;
int s2 = 0;//埋雷埋雷
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&f[i]);
}
for(i=0;i<n;i+=2){
s1+=f[i];
}
for(i=1;i<n;i+=2){
s2+=f[i];
}
if(s1==s2)printf("Equal\n");
else if(s1>s2)printf("Greater than\n");
else printf("Less than\n");
return 0;
}
注意定义变量的位置(for循环内部)- |
K - 做乘法 |
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int i;
for(i=1;i<=n;i++){
printf("%d*%d=%d\n",n,i,n*i);
}
return 0;
}
int max =0; int min =10000001; int ave =0; 循环遍历比较,比max大的 max = 该数,比min小的 min = 该数 ave = (数字1+数字2····)/n |
n天给的糖块总和与实际总和比较,大于等于即可得出结果 |
参考·圆周率的计算 |
for循环+if-else if-else if```` 多分条件判断 |
P - 平方数 |
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{int a;
scanf("%d",&a);
int j;
for(j=0;j<a;j++){
int n,m,t;
scanf("%d%d",&n,&m);
if(n>m){t=n;n=m;m=t;}
int i,w;
int sum = 0;
for(i=n;i<=m;i++){
w = sqrt(i);//参考sqrt(double x),这里不需要改变i的变量类型,否则提交WA
if(i == w*w){
sum+=i;
}
}
printf("%d\n",sum);}
return 0;
}
同学加油!六组for循环,两组外循环,每组有两组内循环。仔细思考! |
#include<stdio.h>
int main()
{
int m,n;
int i;
int sum;
int a1,a2,a3;
int flag;
int temp;
while(~scanf("%d%d",&m,&n))
{
flag = 0;
temp = 0;
for(i = m; i <= n; i++)
{
a1 = i % 10;
a2 = i / 10 % 10;
a3 = i / 100;
sum= a1 * a1 * a1 + a2 * a2 * a2 + a3 * a3 * a3;
if(sum == i)//确保输出至最后一个不出现多余空格
{
temp++;
if(temp == 1)
printf("%d",i);
else
printf(" %d",i);
flag++;
}
}
if(flag == 0)
printf("no");
printf("\n");
}
return 0;
}
求圆周率的升级版本 |
U - A+B for Input-Output Practice (IV) 之前某题的升级版本,遇到0停止程序的运行 |
两组循环 |
其他的大家自己来吧,么么哒!有问题Q我 460752038 VX 460752038