Programozó versenyek

Magas szintű programozási nyelvek 1, 2017. április 25., K16 ZH

2017. április 25. 16:15 – 2017. április 25. 18:00

Szomszédos bitek

Adott a következő fejlécállomány:

myheader.h

  1. #ifndef _MYHEADER_H
  2. #define _MYHEADER_H 1
  3. int foo(int);
  4. #endif /* myheader.h */
letöltés szöveges állományként

Írja meg a myheader.h állományban deklarált foo() függvényt, amely paraméterként megkap egy nemnegatív egész számot! A függvény döntse el, hogy a paraméterként megkapott szám bináris (kettes számrendszerbeli) reprezentációjában szerepel-e egymás melletti helyiértékeken (legalább két) 1-es számjegy vagy sem! Ha így lenne, a függvény logikailag igaz értéket adjon vissza, egyébként pedig hamisat!

Megjegyzés

A függvényt helyezze a foo.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását az alábbi állományok segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "myheader.h"
  4. int main()
  5. {
  6.     int n;
  7.     while (scanf("%d", &n) != EOF)
  8.         puts(foo(n) ? "YES" : "NO");
  9.     return EXIT_SUCCESS;
  10. }
letöltés szöveges állományként

Makefile

  1. SRCS = main.c foo.c
  2. OBJS = $(SRCS:%.c=%.o)
  3. TARGETS = main
  4. .PHONY: clean
  5. all: $(TARGETS)
  6. main: $(OBJS)
  7. $(CC) $(OBJS) -o main
  8. %.o: %.c
  9. $(CC) -Wall -c $< -o $@
  10. clean:
  11. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. 0
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
letöltés szöveges állományként

A példa tesztprogram kimenete

  1. NO
  2. NO
  3. NO
  4. YES
  5. NO
  6. NO
  7. YES
  8. YES
  9. NO
  10. NO
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.