编程论坛's Archiver

nkillers 发表于 2008-4-29 22:34

求输入所有奇数和

程序要求用户输入从1到n之间的数,并计算所有奇数和这个东西要怎么写呢?

newyj 发表于 2008-4-29 22:56

#include<iostream>
using namespace std;

int main(){
  int var=0,num=0;
  cout<<"输入1至100之间的数:";
  cin>>var;
  if(var>=1&&var<=100){
    for(int i=0;i<var;i++){
      if(i%2==1) num+=i;
    }
  }
  else cout<<"超出范围!";
  return 0;
}

abelsky 发表于 2008-4-29 23:06

我也是菜鸟

#include <iostream>
using namespace std;
int jishuhe (int a)       //定义一个求 1到 n 的奇数和 的函数
{
if(0==a%2) a=a-1;              //我不知道你说的n是不是奇数,若是偶数让它减1变为奇数.是奇数,不要这句
int sum=0;
for(int i=1;i<=a;i+=2)
sum+=i;
return sum;
}
int main()
{
int n;
cout<<"输入大于等于1的正整数"<<endl;
cin>>n;
cout<<jishuhe(n)<<endl;
return 0;
}

nkillers 发表于 2008-4-29 23:18

谢谢了,明白了

nkillers 发表于 2008-4-29 23:28

我所说的n是任意的一个数

flyingcloude 发表于 2008-4-30 12:11

#include<iostream>
using namespace std;

int main(){
        for(int n;cin>>n;){
                int sum=0;
                if(n%2==0){
                        sum=(n+1)*n/2;
                        sum=(sum-n/2)/2;
                        cout<<sum<<'\n';
                }
                else{
                        int temp=n-1;
                        sum=(temp+1)*temp/2;
                        sum=(sum-temp/2)/2;
                        sum+=n;
                        cout<<sum<<'\n';
                }
        }
}
感觉这个代码的性能会好点

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.