c++编程 求1+2+3+。。。+n的和 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件
展开全部
#include<stdio.h>
int sum;
int stopper = 100;
void yessum(int i);
void nosum(int i);
typedef void(*fnPtr)(int);
fnPtr dispatch[] = { yessum, nosum };
void yessum(int i)
{
sum += i;
dispatch[i / stopper](i + 1);
}
void nosum(int i)
{
/* do nothing. */
}
int main()
{
yessum(1);
printf("%d",sum);
return 0;
}
改好了
int sum;
int stopper = 100;
void yessum(int i);
void nosum(int i);
typedef void(*fnPtr)(int);
fnPtr dispatch[] = { yessum, nosum };
void yessum(int i)
{
sum += i;
dispatch[i / stopper](i + 1);
}
void nosum(int i)
{
/* do nothing. */
}
int main()
{
yessum(1);
printf("%d",sum);
return 0;
}
改好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
cout<<(n*(n+1)>>1)<<endl;
return 0;
}
不能用乘法啊,我得好好想想
#include<iostream>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
cout<<(n*(n+1)>>1)<<endl;
return 0;
}
不能用乘法啊,我得好好想想
更多追问追答
追问
有乘法?
追答
#include
#include
using namespace std;
int Cal(int n)
{
return n>1?(n+Cal(n-1)):1;
}
int main()
{
int n,sum=0;
cin>>n;
cout<<Cal(n)<<endl;
return 0;
}
递归吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int Factorial(int n)
{
int num = 0;
(n > 0) && (num = n + Factorial(n - 1));
return num;
}
int main()
{
printf("%d\n",Factorial(100));
}
int Factorial(int n)
{
int num = 0;
(n > 0) && (num = n + Factorial(n - 1));
return num;
}
int main()
{
printf("%d\n",Factorial(100));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int sum = 0;
int add_fun(int n)
{
n && add_fun(n-1); //用n是否为0替代判断
return (sum += n); //注意这里
}
int add_fun(int n)
{
n && add_fun(n-1); //用n是否为0替代判断
return (sum += n); //注意这里
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用递归函数吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询