第1个回答 2015-05-14
#include<iostream>
#include<istream>
#include<cstring>
#include<vector>
#include<list>
using namespace std;
bool odd(int n)
{
return n&1;
}
int sum100_200()
{
int i=0,sum=0;
for(i=100;i<=200;i++)
{
if(i%4==0)
{
sum+=i;
}
}
return sum;
}
void print0_100()
{
int flag=0;
int i=0;
for(i=0;i<=100;i++)
{
if(odd(i))
{
cout<<i<<' ';
flag++;
if(flag==5){cout<<endl;flag=0;}
}
}
}
int chengji(int i,int j)
{
return i*j;
}
int main()
{
print0_100();
cout<<endl<<sum100_200()<<endl;
return 1;
}
第2个回答 2015-05-14
#include <stdio.h>
void show_odd(int start, int end, int nums_per_line);
long get_sum(int start, int end, int mul_of_num);
long get_mul(int left, int right);
int main()
{
int start = 0, end = 0, num = 0;
/* 1 */
printf("输出start与end之间的奇数,请输入参数:");
scanf("%d %d %d", &start, &end, &num);
show_odd(start, end, num);
/* 2 */
start = 0, end = 0, num = 0;
printf("求start与end间能被mul_of_num整除的数的和,请输入参数:");
scanf("%d %d %d", &start, &end, &num);
printf("sum = %d\n", get_sum(start, end, num));
/* 3 */
start = 0, end = 0;
printf("求两个整数之积,请输入参数:");
scanf("%d %d", &start, &end);
printf("%d * %d = %ld\n", start, end, get_mul(start, end));
getchar();
getchar();
return 0;
}
/*
* 输出start与end之间的奇数,每行有nums_per_line个
*/
void show_odd(int start, int end, int nums_per_line)
{
int i = 0, j = 1;
// 确保i为奇数
i = start & 1 ? start : start + 1;
for (; i < end; i += 2, j++)
{
printf("%d\t", i);
// j用来确定是否换行
if (0 == j % nums_per_line)
{
printf("\n");
}
}
printf("\n");
}
/*
* 求start与end间能被mul_of_num整除的数的和
* 先找到第一个能被mul_of_num整除的数,赋给i,把所有能被
* mul_of_num整除的个数赋给count,调用等差数列求和公式,
* 把和赋给sum
*/
long get_sum(int start, int end, int mul_of_num)
{
int i = start;
int count = 0;
long sum = 0L;
if (0 == start % mul_of_num)
{
i = start;
count = end / mul_of_num - start / mul_of_num + 1;
}
else
{
i = start + (mul_of_num - start % mul_of_num);
count = end / mul_of_num - start / mul_of_num;
}
sum = count * (i + end / mul_of_num * mul_of_num) / 2;
return sum;
}
/*
* 求两个数之积
*/
long get_mul(int left, int right)
{
return left * right;
}