自定义uiswitchh(a++)a要先自加1吗

1609人阅读
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
题目描述:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
输入可能包含多个测试样例。
对于每个测试案例,输入为一个整数n(1&= n&=100000)。
对应每个测试案例,
输出1+2+3+…+n的值。
样例输入:
样例输出:
方法一、利用构造函数和静态函数成员
#include &iostream&
class Temp
static void Reset()
static int GetSum()
static int N;
static int S
int Temp::N=0;
int Temp::Sum=0;
int solution_Sum(int n)
Temp::Reset();
Temp *a=new Temp[n];
delete []a;
return Temp::GetSum();
int main()
cout&&solution_Sum(100)&&
二、利用虚函数
#include &iostream&
A* Array[2];
virtual int Sum(int n)
class B:public A
virtual int Sum(int n)
return Array[!!n]-&Sum(n-1)+n;
int solution2_Sum(int n)
Array[0]=&a;
Array[1]=&b;
int value=Array[1]-&Sum(n);
int main()
cout&&solution2_Sum(100)&&
利用函数指针
#include &iostream&
typedef int (*fun)(int);
int solution_f1(int i)
int solution_f2(int i)
fun f[2]={solution_f1, solution_f2};
return i+f[!!i](i-1);
void main()
cout&&solution_f2(100)&&
三、利用&&的短路特性
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int add_fun(int n, int &sum)
n && add_fun(n-1, sum);
return (sum+=n);
int main()
int sum=0;
int n=100;
printf(&1+2+3+...+n=%d\n&,add_fun(n, sum));
原文地址:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:61385次
积分:1141
积分:1141
排名:千里之外
原创:48篇
转载:15篇
评论:71条
文章:30篇
阅读:8624switch语句的题目一道判断题int i=20;switch(i/10){
case 2:printf(“A”);
case1:printf(“B”);}标准答案是N真心不知道错在哪啊……_百度作业帮
switch语句的题目一道判断题int i=20;switch(i/10){
case 2:printf(“A”);
case1:printf(“B”);}标准答案是N真心不知道错在哪啊……
switch语句的题目一道判断题int i=20;switch(i/10){
case 2:printf(“A”);
case1:printf(“B”);}标准答案是N真心不知道错在哪啊……
答案印错了。
AB可以把那本书撕了,误人子弟啊。。。
答案是AB, 没有break, 发生 fall through
{ int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { 后面的语句, 然后遇到第二个switch,,因为y=0,,所以运行case 0 后面的p若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch 语句是( )。_百度知道
若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch 语句是( )。
A)switch(x)B)switch((int)x);
case 1.0:printf(&*\n&);
case 1:printf(&*\n&);
case 2.0:printf(&**\n&); }
case 2:printf(&**\n&);}C)switch(a+b)D)switch(a+b)
case 1:printf(&*\n&);
case 1:printf(&*\n&);
case 2+1:printf(&**\n &);}
case c:printf(&**\n&);}A为什么不对
我有更好的答案
switch() 括号表达式里面,结果不能是实型,也就是不能为float。所以A错,B对。这是编译器规定的,所以自己记下来呗。
因为SWITCH 是要求使用可数的数据类型 x 是 浮点, 所以不可数
B选项那里switch((int)x);后面有个“;”不对
其他类似问题
为您推荐:
float的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁若有定义float w=1; int a=1, b=0; ,则不合法的switch语句是:_百度知道
若有定义float w=1; int a=1, b=0; ,则不合法的switch语句是:
A、switch(w) { case 1.0: printf(&*\n&); case 2.0: printf(&**\n&); } B、switch(a); { case 1 printf(&*\n&); case 2 printf(&**\n&); } C、switch(b) { case 1: printf(&*\n&); default: printf(&\n&);} D、switch(a+b); { case 1: printf(&*\n&); default: printf(&\n&); } 多选
提问者采纳
B,switch格式如下:switch(表达式){case 常量表达式 :语句;}(只列了一行)
提问者评价
谢谢,可是是多选题呀
来自团队:
其他类似问题
为您推荐:
float的相关知识
其他4条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 自定义switch 的文章

 

随机推荐