ABAP 循环结构编程训练题

1、 求100以内的所有素数。
分析:
1.素数是只能被1和本身整除的数,故从2开始取值
2.设置了两层循环,一层为遍历被除数,一层为遍历除数
3.设被除数大于除数,只要不被整除则是素数

*100以内素数
DATA:X TYPE I,
     Y TYPE I.
X = 2.
WRITE:/ '100以内所有素数有:'.

WHILE X <= 100.
  Y = 2.
 WHILE Y < X.
  IF X MOD Y = 0.
    EXIT.
  ENDIF.
  Y = Y + 1.
  ENDWHILE.
  IF Y = X.
    WRITE:/ X.
  ENDIF.
    X = X + 1.
ENDWHILE.
  1. 求使整数数列1,2,3,......,n的和不大于6000的最大正整数n.
    分析:
    1循环遍历大于0的所有数
    2.将以上所得的数累加
    3.找出累加结果大于6000的第一个数,此时n-1为累加结果不大于6000的最大整数
DATA: N TYPE I,
      SUM TYPE I.

N = 1.
SUM = 0.


WHILE N > 0.
   
  WRITE:/ 'SUM=',SUM,'+',N.
  
  SUM = SUM + N.
   IF SUM > 6000.
     N = N - 1.
    WRITE:/ N,'是最大整数N'.
    WRITE:/ SUM,'是1,2,3,......,n的和大于6000的第一个整数'.
    EXIT.
  ENDIF.
  N = N + 1.
 
ENDWHILE.

3、求(100,1000)之间所有的能被3整除的偶数的和。
分析:
1.设置变量n为(100,1000)内的数且能被2整除
2.循环将满足要求的数累加
3.得出结果

DATA: N TYPE I,
      SUM TYPE I.

N = 101.
SUM = 0.

WHILE 100 < N AND N < 1000.
  
  IF N MOD 3 = 0.
    IF N MOD 2 = 0.
      WRITE:/ '此时偶数为',N.
      SUM = SUM + N.
      
      WRITE:/ '此时和为',SUM.
    ENDIF.
  ENDIF.
  
  N = N + 1.
ENDWHILE.

4、编写一段程序,按照升序显示出小于输入值的所有正偶数
分析:
1.设置两个未知数M,N,N为输入数,M为小于输入数的数
2.循环找出小于输入数的所有偶数
3.输出结果

PARAMETERS:N TYPE I.
DATA:M TYPE I.

M = 0.

WHILE M <= N.
  M = M + 2.
  IF M < N.
    WRITE: M.
  ENDIF.
ENDWHILE.

5、显示输入的整数值的所有约数
分析:
1.设N为输入数,M为从1开始小于输入数的数
2.循环找出小于N且能整除N的约数
3.输出结果

PARAMETERS:N TYPE I.
DATA:M TYPE I.

M = 1.

WHILE M < N.
  IF N MOD M = 0.
    WRITE: M.
  ENDIF.
  M = M + 1.
ENDWHILE.

你可能感兴趣的:(ABAP 循环结构编程训练题)