试利用printf的返回值去求一个数字n的位数
(printf返回输出字符的数量例如:int n=printf(“xixi”);printf(“%d”,n);//得到xixi4
#include
int main()
{
int num;scanf("%d",&num);
int n=printf("%d\n",num);
printf("%d",n-1);
return 0;
}
斐波那契数列中的每一项都是前两项的和。1,2,3,5,8…求100以内的斐波那契数列之和。
#include
int fibo(int n)
{
if(n==1||n==2)
{
return 1;
}
else
{
return fibo(n-2)+fibo(n-1);
}
}
int main()
{
int i,sum=0,b[30]={0};
for(i=0;i<30;i++){
b[i]=fibo(i+1);
if(b[i]>=100) break;
sum+=b[i];
}
printf("%d",sum);
return 0 ;
}
#include
int main(){
int a=0,b=1,s=0,c=a+b;
while(c<100){
s+=c,a=b,b=c,c=a+b;
}
printf("%d",s);
return 0;
}
#include
#define UPPER_BOUND 4000000
int main(){
int num1= 1, num2 = 2;
int tmp = 0;
int sum=num2;
while(num2 < UPPER_BOUND){
tmp = num2;
num2 = num2 + num1;
num1 = tmp;
if(!(num2 & 1)){
sum += num2;
}
}
printf("%d",sum);
}
#include
#define max_n 44
#define N 4000000
int fib[max_n+5]={0};
int main(){
fib[1]=1,fib[2]=2;//忽略数组的第0位
long long sum=2;
for(int i=3;i<=max_n && fib[i-1]+fib[i-2]<=N;i++){
fib[i]=fib[i-1]+fib[i-2];
if(fib[i]&1) continue;//奇数
sum+=fib[i];
}
printf("%lld",sum);
}
水仙花数是指 “该数本身等于各位数字的立方和” 的三位数。求所有的水仙花数。
int main(){
int i;
int n;scanf("%d",&n);//n表示输入的位数
int max= pow(10,n) ;
int min= pow(10,n-1);
for(i=min;i<max;i++){
int sum=0,m=i;
while(m>0){
sum+=pow(m%10,n);
m/=10;
}
if(sum==i) printf("%d\n",i);
}
return 0;
}
用C语言简单的输出一个九九乘法表(注意排序整齐)。
#include
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
printf("%d*%d=%2d\t",i,j,i*j);
}
printf("\n");
}
return 0;
}
#include
int main() {
int i,j;
for(i=1; i<=9; i++) {
for(j=1; j<=9; j++) {
if(j>=i)
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
#include
int main() {
int i,j;
for(i=1; i<=9; i++) {
for(j=1; j<=9; j++) {
if(j<i)
printf("\t");
else
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
#include
int main() {
int i,j;
for(i=1; i<=9; i++) {
for(j=1; j<=9-i; j++) {
printf("\t");
}
for(j=1; j<=i; j++)
printf("%d*%d=%2d ",i,j,i*j);
printf("\n");
}
return 0;
}
在小于10的的自然数中,3或5的倍数有3、5、6和9,这些数之和是23。求小于1000的自然数中所有3或5的倍数之和。(考虑使用俩种解法)
#include
using namespace std;
int is_value(int n){
if(n%3==0||n%5==0) return 1;
return 0;
}
int main(){
int sum=0;
for(int i=0;i<1000;i++)
{
if(!is_value(i)) continue;
sum+=i;
}
cout<<sum<<endl;
}
#include
using namespace std;
int main(){
int sum3=(3+999)*999/3/2;
int sum5=(5+995)*995/5/2;
int sum15=(15+990)*990/15/2;
int sum=sum3+sum5-sum15;
printf("%d",sum);
return 0;
}