最近,我在hackerearth上发现了一个问题,即如何在没有任何数字的情况下打印726。这是问题:https://www.hackerearth.com/challenge/college/r1/golf/726/
的链接我用这个解决了这个问题:
#include <stdio.h>
main()
{
printf("%d",('\e'*'\e')-('\r'-'\n'));
}
但是由于我发现这个问题很有趣,我希望不使用任何数字来打印每一个数字。因此,我希望在新行中打印0到9,而不使用任何数字并使用unicodes。我怎么能这样做?
答案 0 :(得分:2)
#include <stdio.h>
int main(void){
for(int n = !&n; snprintf(NULL, !&n, "%d", n)==!!&n; printf("%d\n", n++));
}
答案 1 :(得分:1)
#include <stdio.h>
#define ZERO ('a' - 'a')
#define ONE ((int)(sizeof (char)))
#define TWO (ONE + ONE)
#define THREE (TWO + ONE)
#define SIX (TWO * THREE)
#define SEVEN (SIX + ONE)
int main(void) {
printf("%d%d%d\n", SEVEN, TWO, SIX);
/* Assume C99 and implicit return 0; */
}
答案 2 :(得分:1)
有无数种方法可以编写模糊的,无意义的C代码。一个例子:
#include <stdio.h>
int main (void)
{
for(size_t i=!"A string."; i<sizeof("A string."); i++)
printf("%zu ", i);
}
或者,更具创造性地,在纯标准C:
??= include"stdio.h"
#define wtf(x,...) x%:%: nt ma ##x %:%:n(vo ##x %:%:d) ??<for(x %:%:nt x =(+ __LINE__??!??!\
+__LINE__) +- !!"WTF"; x<=__LINE__; +i++)??<\
pr ##x %:%:nt %:%:f((char[])<%'%','d',' ',!"WTF"??>,-+-x);%>??>
wtf(i)
答案 3 :(得分:0)
#include <stdio.h>
void main()
{
char ch='/';
while(ch!=':')
{
if(isdigit(ch))
{
printf("%c\n ",ch);
}
ch++;
}
}
答案 4 :(得分:-2)
您可以检查ASCII code的值并使用带有%d占位符的字符来提取数字。 例如。 :
#include <stdio.h>
int main(int argc, char **argv)
{
char a='H';
printf("%d",a);
return 0;
}