输入一个长整数(long),统计该数的数字系列中大于等于4的数字个数。

输入一个长整数(long),统计该数的数字系列中大于等于4的数字个数。,第1张

求各位数字之和的程序如下:

import javautilScanner;

public class N {

sum=sum+m;

n=n/10;

Systemoutprintln("请输入数字:");

Scanner sc=new Scanner(Systemin);

Systemoutprintln("输入数字的各位数之和为"+sumDigits(l));

}catch(Exception e){

Systemoutprintln("您输入的不是数字!");

运行结果:

请输入数字:

49291

输入数字的各位数之和为25

偶数

整数中,能够被2整除的数,叫做偶数。不能被2整除的数则叫做奇数。即当n是整数时,偶数可表示为2n(n为整数);奇数则可表示为2n+1(或2n-1)。偶数包括正偶数(亦称双数)、负偶数和0。所有整数不是奇数,就是偶数。

在十进制里,我们可用看个位数的方式判断该数是奇数还是偶数:个位为1,3,5,7,9的数为奇数;个位为0,2,4,6,8的数为偶数。

这是默认的类型提升引起的问题。

第一个例子里的表达式u+i里,long long的类型比unsigned 的类型大,所以这里u会被转换成long long,u+i的结果就如输出

第二个例子的表达式里u+i里,u的类型比int大,所以i=-42会转换成unsigned。-42转换成无符号就是一个很大的值(4294967254),u+i就是输出结果了。

以下是默认类型提升的规则

同一句语句或表达式如果使用了多种类型的变量和常量(类型混用),C 会自动把它们转换成同一种类型。以下是自动类型转换的基本规则:

1 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会自动转换成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsigned short 被转换成 unsigned int)。因为它们被转换成表示范围更大的类型,故而把这种转换称为“升级(promotion)”。

2 按照从高到低的顺序给各种数据类型分等级,依次为:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。这里有一个小小的例外,如果 long 和 int 大小相同,则 unsigned int 的等级应位于 long 之上。char 和 short 并没有出现于这个等级列表,是因为它们应该已经被升级成了 int 或者 unsigned int。

3 在任何涉及两种数据类型的 *** 作中,它们之间等级较低的类型会被转换成等级较高的类型。

4 在赋值语句中,= 右边的值在赋予 = 左边的变量之前,首先要将右边的值的数据类型转换成左边变量的类型。也就是说,左边变量是什么数据类型,右边的值就要转换成什么数据类型的值。这个过程可 能导致右边的值的类型升级,也可能导致其类型降级(demotion)。所谓“降级”,是指等级较高的类型被转换成等级较低的类型。

你的程序写错了,return(fib(n-1)+fib(n-2)忘记了一个),改为return(fib(n-1)+fib(n-2)),程序就没错误了。

程序的运行结果为:16

代码解释如下:

fib()函数是个递归函数,实现如下功能:当参数n>2时,将n赋值为n-1,和n-2返回,直到n<=2停止,像主函数里面的fib(6),先返回fib(5)+fib(4);然后继续执行fib()函数,fib(4)+fib(3)+fib(3)+2;然后继续执行fib()函数返回fib(3)+2+2+2+2+2+2,然后继续执行fib()函数返回:{2+2+2}+2+2+2+2+2,然后结束将结果输出。

short、int、long和long long类型通过使用不同数目的位来存储值(关于位的概念自行了解),最多能够表示4中不同的整数宽度。C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴而来),如下:

1 short 至少16位

2 int 至少与 short 一样长

3 long 至少 32 位,且至少与 int 一样长。

具体区别如图:

长整型是计算机程序语言,是程序设计中数据类型的一种表现方式,一般情况下用long 表示长整型。 long 有符号64位整数,范围是-2^63-2^63 -1 Int64。

计算机中的一个基本的专业术语。整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。是一种智能的计算方式。

参考资料:

新浪博客-原创

强制类型转换

当 *** 作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将 *** 作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。

1、显式强制类型转换

显式强制类型转换需要使用强制类型转换运算符,格式如下:

type(<expression>)

(type)<expression>

其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换 *** 作并不改变 *** 作数本身,运算后 *** 作数本身未改变,例如:

int nVar=0xab65;

char cChar=char (nVar);

上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。

2、隐式强制类型转换

隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的 *** 作数类型不同,则将赋值符右边 *** 作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回,如:

int nVar;

double dVar=388;

nVar=dVar;//执行本句后,nVar的值为3,而dVar的值仍是388

以下来自MSDN For Visual Basic

Line 方法

在对象上画直线和矩形。

语法

objectLine [Step] (x1,1) [Step] (x2,y2), [color], [B][F]

Line 方法的语法有以下对象限定符和部分:

部分 描述

object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。

Step 可选的。关键字,指定起点坐标,它们相对于由CurrentX 和 CurrentY 属性提供的当前图形位置。

(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。

Step 可选的。关键字,指定相对于线的起点的终点坐标。

(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。

color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。

B 可选的。如果包括,则利用对角坐标画出矩形。

F 可选的。如果使用了B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。

说明

画联结的线时,前一条线的终点就是后一条线的起点。

线的宽度取决于DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。

执行Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。

以上就是关于输入一个长整数(long),统计该数的数字系列中大于等于4的数字个数。全部的内容,包括:输入一个长整数(long),统计该数的数字系列中大于等于4的数字个数。、求问c++程序此例中int 和long long的区别、有以下C语言程序,程序的输出结果是什么请写出详细的执行过程。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9597037.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存