pascal输入一个整数N(1<=N<=10000000),把它的各位数字倒序输出。N末尾的零不要输出。

如题所述

问题的关键是处理末尾的0,程序如下:

输入一个正整数,将其逆序输出,每个数字后有一个空格。

输入一个正整数n,可以假设n在int范围内

输出将n按其逆序输出,每个数字后有一个空格,输出占一行。/

#include<stdio.h>

int main()

{int i;

int n;

scanf("%d",&n);

int num = 0;

for(i = 0; ; i ++)

{num = n % 10;

n /= 10;

printf("%d\n",num);

if( n < 1)

break;

]return 0;

扩展资料

双阶乘用“m!!”表示。

当 m 是自然数时,表示不超过 m 且与 m 有相同奇偶性的所有正整数的乘积。如:

当 m 是负奇数时,表示绝对值小于它的绝对值的所有负奇数的绝对值积的倒数。

当 m 是负偶数时,m!!不存在。

任何大于等于1 的自然数n 阶乘表示方法:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-02
问题的关键是处理末尾的0.
程序如下:
var s:string;
i,j:integer;
begin
readln(s); //整数用字符串来存;
for i:=length(s) downto 1 do
if s[i]<>'0' then break; //这一步,是找出s串最右边一个不是0的数字的位置,用 i 记下;

for j:=i downto 1 do write(s[j]);
readln;
end.
第2个回答  2013-05-03
当成字符串处理就超简单了~
var
i,j:longint;
n:string;
begin
readln(n);
for i:=length(n) downto 1 do
if n[i]<>'0' then break; //这步是去掉前置0
for j:=i downto 1 do write(n[j]);
writeln;
end.

当然你用数组也可以
把n定义成字符数组n:array [1..9] of char;
这样做还要记录下长度

直接用整形来做当然也是可以的!
var
n:longint;
begin
readln(n);
while (n mod 10=0) do n:=n div 10; //这步是去掉前置0
while n<>0 do
begin
write(n mod 10); //输出最后一位
n:=n div 10; //删掉最后一位
end;
writeln;
end.

三种方法随你选~
满意望采纳谢谢!!本回答被提问者采纳

pascal输入一个整数N(1<=N<=10000000),把它的各位数字倒序输出。N...
输入一个正整数n,可以假设n在int范围内 输出将n按其逆序输出,每个数字后有一个空格,输出占一行。\/ include<stdio.h> int main(){int i;int n;scanf("%d",&n);int num = 0;for(i = 0; ; i ++){num = n % 10;n \/= 10;printf("%d\\n",num);if( n < 1)break;]return 0...

C语言,输入一个整数,从高位开始逐位分割并输出它的各位数字
6、改变整数变量n的值,使其成为原来的十分之一,即减少一位。7、统计整数位数的变量sum自加1,实现位数的统计。8、运行程序,输入一个整数后,计算机倒序输出各位上的数字,并且输出整数的总位数。

free pascal题目
8、 输入一个四位整数,把它的各位数字倒序输出。(提示:用MOD和DIV运算完成)9、 从键盘上读入小写的"pascal",利用CHR()和ORD()函数,输出大写的"PASCAL"。10、 从键盘上读入一个实数,利用ROUND()和TRUNC()函数,输出该实数本身、整数部分、小数部分、四舍五入后的值。要求:分三行输出 ;输出实数本身时,格式与...

输入一串数字,删除重复的数,只剩前面的一个.(PASCAL)
如现在开了一个f:array[-10000000..10000000]of boolean; 的数组,则输入的数要在 [-10000000..10000000]之内,否则爆数组,这个算法速度快,但有局限性,是否采用要视实际情况而定,时间复杂度为O(n)} var f:array[-10000000..10000000]of boolean;n,i,k,a:longint;begin readln(n);fillch...

c语言中如何实现输入一个整数实现倒序输出
1、新建一个工程和.c文件,输入头文件和主函数 2、声明被调用的函数,定义变量类型 3、输入整数 4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号 5、调用一个函数 6、定义函数的返回类型和形参类型 7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句 8、通过...

语言编程 输入一个整数,从高位开始逐位分割并输出它的各位数字
如果不等于0则执行语句体。5、对整数n用10求余,余数保存在变量p中,即为各位上的数字。6、改变整数变量n的值,使其成为原来的十分之一,即减少一位。7、统计整数位数的变量sum自加1,实现位数的统计。8、运行程序,输入一个整数后,计算机倒序输出各位上的数字,并且输出整数的总位数。

输入一个三位正整数,将它反向输出。用c语言编
include<stdio.h> void main(){ a[10],i,n,j,k=0;printf("请输入一个正整数:");scanf("%d",&n);for(i=0;i<=9;i++){ j=n%10;a[i]=j;n=(n-(n%10))\/10;k=k+1;if(n<1)break;} printf("将该正整数倒序输出:");for(i=0;i<=k-1;i++)printf("%d",a[i]);...

pascal 中如何随机生成一个数
program hjsd;var n:longint;begin randomize;(使每次产生的随机数都不同)n:=random(10000000);(随机产生一个数,范围为:0 到 10000000 若想产生正整数,可设为:n:=random(10000000)+1;)writeln(n);end.

pascal求输入一个数N,输出N阶乘各位数之和P。并判断P是否为质数。
i,j,n,w,sum : longint;a : array[1..10000000] of longint;f:boolean;procedure jc(k : longint);var x,i : longint;begin x := 0;for i := 1 to w do begin a[i] := a[i]*k+x;x := a[i] div 10;a[i] := a[i] mod 10;end;while x>0 DO begin w := ...

关于N!的问题
PASCAL不会,给你思路 1:最右边数字,每次计算你留下最右边非0数字就行 2:0的个数:能够产生0的你只需要管序列中 5N(N为任意正整数)的个数

相似回答